springboot事务

1.读未提交(Read uncommitted):一个事务可以读取另一个未提交的事务。事务A读取未提交的事务B时,A看到的数据不是事   务B执行完成的最后数据,当事务B发现数据不对时立即回滚事务,这时事务A出现脏读。

2.读提交(Read committed):就是一个事务要等另一个事务提交后才能读取数据。若有事务对数据进行更新(UPDATE)操作时,读操作事务要等待这个更新操作事务提交后才能读取数据。当事务A进行第一次查询操作完成后,事务B进行UPDATE操作,这时事务A进行第二次查询操作,第二次查询的是事务B提交后的数据,所以事务A前后两次的查询结果出现差异,这就是不可重复读。读提交能解决脏读,却会出现不可重复读。

3.重复读(Repeatable read):就是在开始读取数据(事务开启)时,不再允许修改操作。重复读可以解决不可重复读的问题,但会带来幻读。事务A读取数据时,事务B进行插入操作并提交事务,这时事务A提交,发现事务A提交前后数据出现差异,就出现幻读。

4.序列化(Serializable):Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

public enum Isolation {  
    DEFAULT(-1),
    READ_UNCOMMITTED(1),
    READ_COMMITTED(2),
    REPEATABLE_READ(4),
    SERIALIZABLE(8);
}


org.springframework.transaction.annotation.Isolation 枚举类中定义了五个表示隔离级别的值,DEFAULT 为默认使用底层数据库的默认隔离级别。对大部分数据库而言,通常这值就是: READ_COMMITTED 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值