spring事务实现概述

2023-01-05  本文已影响0人  M_lear

包package java.sql下的Connection接口很重要。
spring事务就是基于这个接口做的。

spring事务获取连接:

screenshot-20230105-181317.png

这中间涉及一个DataSource接口,当一个项目需要同时依赖多个数据源时,就需要通过实现这个接口来实现。

因为连接是一种很重的资源,所以一般都通过连接池来管理复用连接。常见的连接池有hikari、druid等。

每个数据源都交给连接池去管理,所以最终获取到的连接,是从连接池实现的DataSource中获取的。而连接池中的连接是对JDBC连接的封装。所以最终使用的Connection的实现是具体数据库厂商的JDBC实现。

以Mysql的Connection实现为例,开启事务:

image.png

其实就是执行,SET autocommit=0
提交、回滚类似,最终都是依赖JDBC的Connection实现去做的,不再赘述。

更加详细的描述可以参考,写的很棒:https://zhuanlan.zhihu.com/p/383264808

上一篇下一篇

猜你喜欢

热点阅读