线程内事务说明
最后更新:2024-09-14 22:47:20
|
状态:未完成
默认的事务管理器是基于线程变量来实现
先在当前线程内设置一个ThreadLocal
第一次启动事务时把连接放到这个ThreadLocal
获取连接时先检测ThreadLocal中有没有连接,如果没有才调用连接池中的新连接,如果有则复用ThreadLocal中的连接,
提交或回滚事务时也是从ThreadLocal中获取连接执行提交或回滚,
这样就保存了启动事务,提交事务使用的是同一个连接
根据事务类型,第二次启动事务时可以加入上一个事务或新启动一个事务(也就是判断一下ThreadLocal中有没有连接)