spring事务传播属性和事务隔离级别

传播属性:

 

propagation_required 如何当前没有发生事物,就新建一个事物。如果已经攒在一个事物,加入到这个事务中。

propagation_supports 支持当前事物,如果当前没有食物,就以非实物方式执行

propagation_mandatory 使用当前的事物,如果当前没有事物,就抛出异常

propagation_requires_new 新建事物,如果当前存在事物,就把当前事物挂起

propagation_not_supported 以非事物方式执行操作,如果当前存在事物,就把当前事务挂起

propagation_never 以非事物方式执行,如果当前存在事物,则抛出异常

propagation_nested 如果当前存在事物,则在嵌套事务内执行。如果当前没有事物,则执行与propagation_required类似的操作

隔离级别:

isolation_default

isolation_read_committed不允许脏读,非重复读和幻想度允许

isolation_read_uncommitted脏读,非重复读,幻想度都允许

isolation_repeatable_read不允许脏读和非重复读,幻想读允许

isolation_serializable脏读,非重复读,幻想度都不允许

 

 

脏读:

T1 开始事务
T2开始事务 
T3 查询账户余额为1000元
T4 取出五百元,把余额改为五百
T5查询账余额为伍佰元 
T6 撤销事务余额恢复一千元
T7汇入一百元余额改为六百元 
T8提交事务 

 

不可重复读(读到了其他提交事务的修改或删除数据)

T1 开始事务
T2开始事务 
  查询账户余额为一千元
T3查询账户余额为一千元 
T4 存入一百元
T5 提交事务
T6再次统计总储蓄额为一千一百元 

 

 

 

幻想读(读到了其他已提交事务的新增数据)

T1 开始事务
T2开始事务 
T3统计总储蓄额为一千元 
T4 新增加一个存款用户,存款为一百元
T5 提交事务
T6再次统计总储蓄额为一千一百元 

 

第一类丢失更新

T1开始事物 
T2 开始事物
T3查询账户余额为一千元 
T4 查询账户余额为一千元
T5 汇入一百元把余额改为一千一百元
T6 提交事务
T7取出一百元把余额改为九百元 
T8撤销事务 
T9把余额改为一千元(丢失更新) 

 

第二类丢失更新

T1开始事物 
T2 开始事物
T3查询账户余额为一千元 
T4 查询账户余额为一千元
T5 汇入一百元把余额改为一千一百元
T6 提交事务
T7取出一百元把余额改为九百元 
T8提交事务 
T9把余额改为一千元(丢失更新) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值