2、MyBatis架构原理
一、架构设计
Mybatis的功能架构分为三层:
-
API接⼝层:提供给外部使⽤的接⼝ API,开发⼈员通过这些本地API来操纵数据库。接⼝层⼀接收 到 调⽤请求就会调⽤数据处理层来完成具体的数据处理。
MyBatis和数据库的交互有两种⽅式:
-
使⽤传统的MyBati s提供的API ;
-
使⽤Mapper代理的⽅式
-
-
数据处理层:负责具体的SQL查找、SQL解析、SQL执⾏和执⾏结果映射处理等。它主要的⽬的是根 据调⽤的请求完成⼀次数据库操作。
-
基础⽀撑层:负责最基础的功能⽀撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是 共 ⽤的东⻄,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的⽀撑
二、主要构件及其相互关系
SqlSession
: MyBatis⼯作的主要顶层API,表示和数据库交互的会话,完成必要数 据库增删改查功能Executor
:MyBatis执⾏器,是MyBatis调度的核⼼,负责SQL语句的⽣成和查询缓 存的维护StatementHandler
:封装了JDBC Statement操作,负责对JDBC statement的操作,如设置参 数、将Statement结果集转换成List集合ParameterHandler
:负责对⽤户传递的参数转换成JDBC Statement所需要的参数ResultSetHandler
:负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;TypeHandler
:负责java数据类型和jdbc数据类型之间的映射和转换MappedStatement
:MappedStatement维护了⼀条<select | update | delete | insert>节点 的封 装SqlSource
:负责根据⽤户传递的parameterObject,动态地⽣成SQL语句,将信息封 装到BoundSql对象中,并返回BoundSql
:表示动态⽣成的SQL语句以及相应的参数信息
本文作者:志旋
本文链接:https://www.cnblogs.com/wuzhixuan/p/15483922.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步