一、接口层:
核心是SqlSession接口,它暴露了Mybatis提供给开发人员的API,接口层在接收到相应的请求时,会调用核心处理层的相应模块来完成具体操作
二、核心处理层:
核心处理层实现了Mybatis核心处理流程,其中包括Mybatis的初始化以及完成一次数据库操作涉及的全部流程
组成:
2.1、配置解析,解析配置文件如核心配置文件解析成功后会生成Configuration对象
2.2、SQL解析,用于解析动态SQL SQL执行,用于执行SQL,其涉及到多个模块Executor、ParameterHandler、StatementHandler以及ResultSetHandler
2.3、插件,可以通过添加自定义插件的方式对Mybatis进行扩展
三、基础支持层:
为核心处理层提供了良好的支持,并提供了可观的代码复用
组成:
3.1、反射模块,对JDK反射的封装
3.2、类型转换模块,别名机制是类型转换模块中重要机制,实现了JDBC类型和JAVA类型之间的转换
3.3、日志模块,用于日志记录
3.4、资源加载模块,对类加载器的封装
3.5、解析器模块,一是对XPath的封装,为初始化加载解析配置文件提供支持。二是为处理动态SQL语句中的占位符提供支持
3.6、数据源模块,mybatis提供了相应的数据源实现,也提供了与第三方数据源集成的接口
3.7、事务管理模块,对数据库中的事务进行了抽象,其自身提供了相应的事务接口和简单实现。
3.8、缓存模块,提供了一级缓存二级缓存
3.9、binding模块,将用户自定义的mapper接口与映射配置文件关联起来