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