MyBatis知识汇总(第七篇)【图文】关于执行流程的源码分析+底层原理

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、关闭

未使用自动提交事务的重载方法
在这里插入图片描述
因此需要自动提交事务后关闭

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超周到的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值