前言
上一篇 谈谈对Mybatis的理解
今天接着上一篇继续聊一聊Mybatis的架构
Mybatis的架构设计
image.pngMybatis也是一个分层架构,根据一个实际需要执行的sql,进行了三层的设计。
- 接口层:对外暴露接口,提供增删改查及配置的能力。
- 数据处理层:用来解析sql,将sql中的参数映射到数据库,并提供执行sql的能力,同时提供讲数据库中的数据元素映射到java对象的封装
- 框架支撑层:提供最基础能力用来支撑框架,比如事务管理,缓存的处理,连接池的维护,配置加载等。
Mybatis主要组件
组件 | 描述 |
---|---|
SqlSession | 作为Mybatis工作的主要顶层API,表示和数据库交互的回话,完成必要的数据库增删改查功能 |
Executor | Mybatis的执行器,Mybatis的核心能力,负责Sql语句的生成和查询结构的缓存及其维护 |
StatementHandler | 封装了JDBC Statement操作,负责对JDBC statement操作,同时将Statement结果转换为List集合 |
ParameterHandler | 负责对用户传递的参数转化换成JDBC Statement所需要的参数。 |
ResultSetHandler | 负责将JDBC返回的ResultSet结果集对象转换成List集合 |
TypeHandler | 负责java数据对象和jdbc数据类型之间的映射和转换,ORM关系型数据库的特点 |
MappedStatement | 维护了select/update/delete/insert 节点的封装 |
SqlSource | 负责根据用户传递的parameterObject,动态的生成Sql语句,将信息封装在BoundSql中。 |
BoundSql | 标识动态生成的Sql语句及相关的参数信息 |
网友评论