MyBatis详细执行流程
步骤总结:
1、Resources加载全局配置文件
2、实例化SqlSessionFactoryBuilder工程构建器
3、由XMLConfigBulider解析配置文件流
4、把配置信息存放在Configuration中
5、实例化SqlSessionFactory实现类DefaultSqlSessionFactory
6、由TransactionFactory创建一个Transaction事务对象
7、创建Excutor执行器
8、创建SqlSession接口实现类DefaultSqlSession
9、实现CURD若执行成功,则事务提交(注:查询操作不用提交事务),否则因失败而回滚到第6步
10、关闭
1、Resources加载全局配置文件
2、实例化SqlSessionFactoryBuilder工程构建器
3、由XMLConfigBulider解析配置文件流
4、把配置信息存放在Configuration中
通过 Debug 也可以看出 Configuration 中包含了许多的配置信息
5、实例化SqlSessionFactory实现类DefaultSqlSessionFactory
6、由TransactionFactory创建一个Transaction事务对象
7、创建Excutor执行器
8、创建SqlSession接口实现类DefaultSqlSession
根据 Debug 测试可寻根溯源
成功找到SqlSession接口的实现类DefaultSqlSession的实例化代码段
9、实现CURD若执行成功,则事务提交(注:查询操作不用提交事务),否则因失败而回滚到第6步
当然,也可以在获取SqlSession时配置事务自动提交,则增删改操作也不再需要提交事务
这是由于此方法是个重载方法
10、关闭
未使用自动提交事务的重载方法
因此需要自动提交事务后关闭