一.事务的传播行为(七大事务传播方式)
1.REQUIRED(默认)
支持当前事务,如果不存在则创建一个新的事务
2.SUPPORTS
支持当前事务,如果不存在,则以非事务方式执行
3.MANDATORY
支持当前事务,如果不存在则抛出异常
4.REQUIRES_NEW
创建一个新事务,如果当前事务存在,则暂停当前事务
5.NOT_SUPPORTED
以非事务方式执行,如果存在当前事务,则暂停当前事务
6.NEVER
以非事务方式执行,如果存在事务则抛出异常
7.NESTED
如果当前事务存在,则在嵌套事务中执行
二.事务的隔离级别
1.DEFAULT(默认)
使用底层数据存储的默认隔离级别
SqlServer、Oracle 默认隔离级别为:Read Commited
MySQL InnoDB 默认隔离级别为:Repeatable Read
2.READ_UNCOMMITTED(读未提交)
一个事务可以读取另一个未提交事务的数据
3.READ_COMMITTED(读已提交)
一个事务要等另一个事务提交后才能读取数据
4.REPEATABLE_READ(重复读)
在开始读取数据(事务开启)时,不再允许修改操作
5.SERIALIZABLE(序列化)
数据库事务的最高隔离级别。在此级别下,事务串行执行。可以避免脏读、不可重复读、幻读等读现象。但是效率低下,耗费数据库性能,不推荐使用。
Springboot 事务
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 今天是平安夜,先祝大家平安夜快乐。 我们之前的数十篇文章分析了 Spring 和 Mybatis 的原理,基...