Spring事务管理(详解+实例)

本文详细介绍了Spring框架中的事务管理机制,包括事务的传播行为、隔离级别等关键概念,并解释了传统事务的ACID特性。

http://www.mamicode.com/info-detail-1248286.html

传统的事务分为ACID

A:原子性,表示一个事务的多个操作要么同时成功,要么同时失败

C:一致性,表示一个原理的业务处理不能存在部分成功,部分失败的情况

I:隔离性,多个事务执行时,数据需要隔离

D:持久性,事务执行完成后,数据持久化,可以恢复

 

spring的事务定义分为如下几个部分:

传播机制、隔离机制、超时时间、是否只读、回滚机制

 

7种事务传播机制:

propogation_required:当前方法必须运行在事务中,如果事务存在,则加入该事务,否则开启一个新事务

propogation_required_new:当前方法必须运行在自己的事务中,当前方法执行时,该事务挂起

propogation_supports:当前方法不需要事务上下文,如果存在事务则加入

propogation_not_supported:当前方法不支持事务上下文,如果存在事务则挂起

propogation_mandatory:当前事务必须运行在事务中,如果不再存事务则报异常

popogation_never:当前事务不能运行在事务当中,如果存在事务则报异常

propogation_nested:事务嵌套,如果存在当前事务,该方法运行在嵌套事务中,嵌套的事务可以独立的提交或回滚,如果不存在事务开启一个新事务

 

事务的隔离级别:

事务的隔离级别定义了一个事务可能受其他并发事务的影响程度

并发事务影响的问题:

1.脏读:一个事务读取了并发事务尚未提交的数据,如果该数据回滚则数据就无效了

2.不可重复读:多次读取数据同一数据结果不一致

3.幻读:多次执行同一查询,结果不一致

 

五大隔离级别:

1.ISOLATION_DEFAULT:使用后端数据库默认的隔离级别

2.ISOLATION_READ_UNCOMMITTED:读未提交,最低的隔离级别,允许读取尚未提交的数据变更

3.ISOLATION_READ_COMMITTED:允许读取并发事务已经提交的数据

4.ISOLATION_REPEATABLE_READ:可重复读,同一个字段多次读取结果一致

5.ISOLATION_SERIALIZABLE:串行读,最高隔离机制,完全锁定事务相关表

 

转载于:https://www.cnblogs.com/adealjason/p/6500971.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值