面试突击:Spring 有几种事务隔离级别?

网站建设4年前发布
16 0 0

20230306013024a2fc5ae11e07ff01d94968d8019f503d4b29ed773,Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别。,​事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。,比如,有两个事务同时操作同一张表,此时有一个事务修改了这张表的数据,但尚未提交事务,那么在另一个事务中,要不要(或者说能不能)看到其他事务尚未提交的数据呢?,这个问题的答案就要看事务的隔离级别了,不同的事务隔离级别,对应的行为模式也是不一样的(有些隔离级别可以看到其他事务尚未提交的数据,有些事务隔离级别看不到其他事务尚未提交的数据),这就是事务隔离级别的作用。,Sping 中的事务隔离级别有 5 种,它们分别是:,所以,相比于 MySQL 的事务隔离级别,Spring 中多了一种 DEFAULT 的事务隔离级别。,事务隔离级别与问题的对应关系如下:,2023030601313974b95fb8959b270a13c82665a2335313b2c893207,在 Spring 中,事务的隔离级别有 2 种设置方法,一种是在编程式事务中,可以通过以下代码来设置事务隔离级别:,20230306013025d9090f8779c1fca22c92715c1b222f7a939798723,另一种是在声明式事务中设置事务隔离级别,设置方法如下:,2023030601302631b2b98350d496eb56236068c8ee7defc97aab454,Spring 中的事务隔离级别比 MySQL 中的事务隔离级别多了一种,它包含的 5 种隔离级别分别是:,但需要注意是 Spring 是事务隔离级别是建立在连接的数据库支持事务的基础上的,如果 Spring 项目连接的数据库不支持事务(或事务隔离级别),那么即使在 Spring 中设置了事务隔离级别,也是无效的设置。

© 版权声明

相关文章