MyBatis 是 Java 生态中非常著名的一款 ORM 框架,目前在一线互联网大厂中应用广泛,Mybatis 已经成为了一个必会框架。
理解 MyBatis 原理,阅读 MyBatis 核心源码,需要先 Mybatis 的整体架构和工作原理总体思路。
Mybatis 的功能架构分为三层:API 接口层、数据处理层、基础支撑层
接口层:主要就是和数据库交互,提供给外部使用的接口 API,开发人员通过这些本地 API 来操纵数据库,接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理
数据处理层:可以说是 MyBatis 的核心,负责具体的 SQL 查找、SQL 解析、SQL 执行和执行结果映射处理等,它主要的目的是根据调用的请求完成一次数据库操作。
基础支撑层是整个 MyBatis 框架的地基,负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件,为上层的数据处理层提供最基础的支撑
1、缓存机制:MyBatis 就提供了一级缓存和二级缓存,具体实现位于基础支撑层的缓存模块中。
2、反射工具:对反射操作进行了一系列优化,例如缓存了类的元数据,提高了反射操作的性能。
3、类型转换:类型转换模块提供了两个主要功能,一个功能是别名机制,MyBatis 为了简化配置文件提供了别名机制。另一个功能是实现 JDBC 类型与 Java 类型之间的转换。
4、日志:提供详细的日志输出信息,并且能够集成多种日志框架,其日志模块的一个主要功能就是集成第三方日志框架