MyBatis运行原理

运行过程中涉及到的类

1 Resources:
   MyBatis 中 IO 流的工具类加载配置文件
   
1.2 SqlSessionFactoryBuilder() 构建器:
   1.2.1 作用:创建 SqlSessionFactory 接口的实现类
   
1.3 XMLConfigBuilder
    MyBatis 全局配置文件内容构建器类
   1.3.1 作用负责读取流内容并转换为 JAVA 代码.
   
1.4 Configuration: 封装了全局配置文件所有配置信息.
   1.4.1 全局配置文件内容存放在 Configuration 中
   
1.5 DefaultSqlSessionFactory:
   是SqlSessionFactory接口的实现类
   
1.6 Transaction 事务类:
   16.1 每一个 SqlSession 会带有一个 Transaction 对象.
   
1.7 TransactionFactory 事务工厂:
   1.7.1 负责生产 Transaction
   
1.8 Executor:
   MyBatis 执行器
   1.8.1 作用:负责执行 SQL 命令
   1.8.2 相当于 JDBC 中 statement 对象(或 PreparedStatement 或 CallableStatement)
   1.8.3 默认的执行器 SimpleExcutor
   1.8.4 批量操作 BatchExcutor
   1.8.5 通过 openSession(参数控制)
   
1.9 DefaultSqlSession:
   是 SqlSession 接口的实现类
   
1.10 ExceptionFactory:
   MyBatis 中异常工厂

MyBatis运行原理
文字解释

在 MyBatis 运行开始时需要先通过 Resources 加载全局配置文件.
下面 需要实例化 SqlSessionFactoryBuilder 构建器.
帮助 SqlSessionFactory 接 口实现类 DefaultSqlSessionFactory.
在实例化 DefaultSqlSessionFactory 之前需要先创建 XmlConfigBuilder 解析全局配置文件流,并把解析结果存放在 Configuration 中.之后把 Configuratin 传递给 DefaultSqlSessionFactory.
到此 SqlSessionFactory 工 厂创建成功.
由 SqlSessionFactory 工厂创建 SqlSession. 每次创建 SqlSession 时,都需要由 TransactionFactory 创建 Transaction 对象,同时还需要创建 SqlSession 的执行器 Excutor,最后实例化 DefaultSqlSession,传递给 SqlSession 接口. 根据项目需求使用 SqlSession 接口中的 API 完成具体的事务操作.
如果事务执行失败,需要进行 rollback 回滚事务.
如果事务执行成功提交给数据库.关闭 SqlSession

非原创,来源:尚学堂课程上课笔记