运行过程中涉及到的类
- Resources IO流工具类
加载配置文件 - SqlSessionFactoryBuilder()构建器
作用:创建SqlSessionFactory接口的实现类 - XMLConfigBuilder 负责读取流类内容(XML解析)并转换为java代码
- Configuration封装了全局配置文件所有配置信息
全局配置文件内容放在configuration中 - DefaultSqlSessionFactory是SqlSessionFactory接口的实现类
- Transaction 事务类 每个SqlSession都会带一个transaction对象
- TransactionFactory 事务工厂 负责生产transaction
- Executor Mybatis执行器 负责执行SQL命令,相当于JDBC中的statement对象(或PreparedStatement或CallableStatement)
- 默认的执行器SimpleExecutor
- 批量执行器 BatchExecutor 可通过openSession(参数控制)
- DefaultSqlSession是SqlSession接口的实现类
- 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。