包含内容
基础支持层、核心处理层、接口层
基础支持层
基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑。
- 反射模块,reflection包,封装原生反射包,提供简洁API供上层调用
- 类型模块 type包, 为简化配置文件提供别名机制;实现JDBC类型于Java类型之间的转换,SQL绑定是惨以及映射查询结果集时涉及
- 日志模块,集成第三方日志框架;
- IO模块,资源加载模块,主要对类加载器进行封装,确定类加载器对使用顺序,加载文件;
- 解析器模块,parsing包:对XPath进行封装,初始化时解析mybatis-config.xml配置文件以及映射配置文件;处理动态SQL语句中占位符提供支持
- 数据源模块,datasource:自身有,也能集成第三方;
- 事务模块,transaction包:提供事务接口和简单水岸,邮Spring框架管理事务;
- 缓存模块,cache包,提供一级、二级缓存,与应用共享内存;
- Binding模块,binding包,将用户自定义的 Mapper 接口与映射配置文件关联起来,系统可以通过调用自定义 Mapper 接口中的方法执行相应的 SQL 语句完成数据库操作;
- 注解模块,annotation包;
- 异常模块
核心处理层
实现了 MyBatis 的核心处理流程,其中包括 MyBatis 的初始化以及完成一次数据库操作的涉及的全部流程
- 配置解析,builder和mapping模块,前置解析过程,后者为解析后对映射
- SQL解析,scripting模块,根据用户传入的实惨,解析映射文件中定义的动态sql节点,占位符,绑定用户传入的实参等;
- SQL执行,对应executor和cursor模块,前者对应执行器,后者对应结果的游标
- 插件层,plugin模块,提供插件接口,添加用户自定义插件
接口层
session模块,对外暴露的接口