MyBatis学习-10
MyBatis运行原理
运行过程中涉及到的类
- ResourcesMyBatis 中 IO 流的工具类
- 加载配置文件
- SqlSessionFactoryBuilder() 构建器
- 作用:创建 SqlSessionFactory 接口的实现类
- XMLConfigBuilder MyBatis 全局配置文件内容构建器类
- 作用负责读取流内容并转换为 JAVA 代码.
- Configuration 封装了全局配置文件所有配置信息.
- 全局配置文件内容存放在 Configuration 中
- DefaultSqlSessionFactory
- 是SqlSessionFactory接口的实现类
- Transaction 事务类
- 每一个 SqlSession 会带有一个 Transaction 对象.
- TransactionFactory 事务工厂
- 负责生产 Transaction
- Executor MyBatis 执行器
- 作用:负责执行 SQL 命令
- 相当于 JDBC 中 statement 对象(或 PreparedStatement或 CallableStatement)
- 默认的执行器 SimpleExcutor
- 批量操作 BatchExcutor
- 通过 openSession(参数控制)
- DefaultSqlSession 是 SqlSession 接口的实现类
- ExceptionFactoryMyBatis 中异常工厂
在 MyBatis 运行开始时需要先通过 Resources 加载全局配置文件.下面需要实例化 SqlSessionFactoryBuilder 构建器.帮助 SqlSessionFactory 接口实现类 DefaultSqlSessionFactory.
在实例化 DefaultSqlSessionFactory 之前需要先创建 XmlConfigBuilder解析全局配置文件流,并把解析结果存放在 Configuration 中.之后把Configuratin 传递给 DefaultSqlSessionFactory.到此 SqlSessionFactory 工厂创建成功.
由 SqlSessionFactory 工厂创建 SqlSession.每次创建 SqlSession 时,都需要由 TransactionFactory 创建 Transaction对象,同时还需要创建 SqlSession 的执行器 Excutor,最后实例化DefaultSqlSession,传递给 SqlSession 接口.
根据项目需求使用 SqlSession 接口中的 API 完成具体的事务操作.如果事务执行失败,需要进行 rollback 回滚事务.如果事务执行成功提交给数据库.关闭 SqlSession
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论