(一)MyBatis源码阅读:明晰项目结构
一、进入官网
点击以下链接进入官网:mybatis – MyBatis 3 | 配置,进入配置页面可以查看 MyBatis的配置结构,从该结构中可以知道MyBatis的配置结构。
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
二、项目结构
Mybatis的整体框架分为三层,分别是基础支持层、核心处理层、和接口层。如下图
(一) 接口层
首先接口层是我们打交道最多的。核心对象是SqlSession,它是上层应用和MyBatis打交道的桥梁,SqlSession上定义了非常多的对数据库的操作方法。接口层在接收到调用请求的时候,会调用核心处理层的相应模块来完成具体的数据库操作。
(二) 核心处理层
接下来是核心处理层。既然叫核心处理层,也就是跟数据库操作相关的动作都是在这一层完成的。
核心处理层主要做了这几件事:
-
把接口中传入的参数解析并且映射成JDBC类型;
-
解析xml文件中的SQL语句,包括插入参数,和动态SQL的生成;
-
执行SQL语句;
-
处理结果集,并映射成Java对象。
插件也属于核心层,这是由它的工作方式和拦截的对象决定的。
(三) 基础支持层
最后一个就是基础支持层。基础支持层主要是一些抽取出来的通用的功能(实现复用),用来支持核心处理层的功能。比如数据源、缓存、日志、xml解析、反射、IO、事务等等这些功能,
(四) 工作流程
MyBatis的主要工作流程图