MyBatis运行原理

运行过程中涉及到的类

  1. Resources IO流工具类
    加载配置文件
  2. SqlSessionFactoryBuilder()构建器
    作用:创建SqlSessionFactory接口的实现类
  3. XMLConfigBuilder 负责读取流类内容(XML解析)并转换为java代码
  4. Configuration封装了全局配置文件所有配置信息
    全局配置文件内容放在configuration中
  5. DefaultSqlSessionFactory是SqlSessionFactory接口的实现类
  6. Transaction 事务类 每个SqlSession都会带一个transaction对象
  7. TransactionFactory 事务工厂 负责生产transaction
  8. Executor Mybatis执行器 负责执行SQL命令,相当于JDBC中的statement对象(或PreparedStatement或CallableStatement)
  9. 默认的执行器SimpleExecutor
  10. 批量执行器 BatchExecutor 可通过openSession(参数控制)
  11. DefaultSqlSession是SqlSession接口的实现类
  12. ExceptionFactory 是Mybatis中异常工厂
在MyBatis运行开始需要先通过Resources加载全局配置文件,下面需要实例化SqlSessionFactoryBuilder构建器,磅数SqlSessionFactory接口实现类DefaultSqlSessionFactory。
在实例化DefaultSqlSessionFactory之前,需要先创建XMLConfigBuilder 解析全局配置文件流,并解析结果放在

configuration中,之后吧configuration传递给DefaultSqlSessionFactory,到此SqlSessionFactory工厂创建成功。
由SqlSessionFactory创建SqlSession。
每次创建SqlSession时,都需要由TransactionFactory创建transaction对象,同事还需要创建SqlSession的执行器Executor,最后实例化DefaultSqlSession,传递给SqlSession接口。
根据项目需求使用SqlSession接口中的挨批完成具体的事务操作,如果事务执行失败,需要进行roolback回滚事务,如果事务执行成功,提交给数据库,关闭session。

猜你喜欢

转载自blog.csdn.net/qq_40392686/article/details/82865333
今日推荐