MyBatis 运行原理

1. 运行过程中涉及到的类
   1.1ResourcesMyBatis 中 IO 流的工具类
      1.1.1 加载配置文件
   1.2SqlSessionFactoryBuilder() 构建器
      1.2.1 作用:创建 SqlSessionFactory 接口的实现类
   1.3XMLConfigBuilder MyBatis 全局配置文件内容构建器类
      1.3.1 作用负责读取流内容并转换为 JAVA 代码.
   1.4Configuration 封装了全局配置文件所有配置信息.
      1.4.1 全局配置文件内容存放在 Configuration 中
   1.5DefaultSqlSessionFactory 是SqlSessionFactory接口的实现类
   1.6Transaction 事务类
      1.6.1 每一个 SqlSession 会带有一个 Transaction 对象.
   1.7TransactionFactory 事务工厂
       1.7.1 负责生产 Transaction
   1.8Executor 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.9DefaultSqlSession 是 SqlSession 接口的实现类
   1.10ExceptionFactoryMyBatis 中异常工厂

2. 流程图

 

 

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

posted @ 2019-12-04 16:36  古城笙箫  阅读(174)  评论(0)    收藏  举报