竹径风声

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
一、运行原理
      1.运行过程中涉及到的类
        1.1 Resources MyBatis中IO流的工具类
        1.1加载配置文件
      1.2 SqISessionFactoryBuilder()构建器
        1.2.1作用:创建SqlSessionFactory接口的实现类
      1.3 XMLConfigBuilder MyBatis 全局配置文件内容构建器类
        1.3.1作用负责读取流内容并转换为JAVA代码.
      1.4Configuration封装了全局配置文件所有配置信息.
        1.4.1全局配置文件内容存放在Configuration中
      1.5 DefaultSqISessionFactory是SqlSessionFactory接口的实现类
      1.6 Transaction事务类
        16.1每一个SqISession会带有- -个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 DefaultSqISession是SqISession接口的实现类
      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到此就是 MyBatis 的运行原理.(面试官说的.)
 
 
 
 
 
 
posted on 2019-05-30 21:18  竹径风声  阅读(146)  评论(0)    收藏  举报