Spring事务管理

什么是事务

实际业务场景中,经常会遇到数据频繁修改读取的问题。同时刻,不同的业务逻辑,对同一个表数据进行修改,这种冲突很可能造成数据不可挽回的错乱,所以我们需要用事务来对数据进行管理。
概念:事务就是一系列指令的集合。
事务必须服从ACID原则。
ACID:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)

  • 原子性:执行这些指令,要么全执行,要么全不执行。其中一个失败,满盘皆输,数据回滚,回到解放前数据状态。
  • 一致性:事务的执行使数据状态改变,但对于整个数据的完整性保持稳定。
  • 隔离性:一个事务执行过程中,任何数据改变都只在这个事务中,对外界无影响;事务确定提交后,才显示改事务对数据的改变。其他事物才能获取改变后的数据。
  • 持久性:事务正确的运行后,对于数据的改变是永久的。

并发事务导致四种问题

多事务处理统一数据时,如果没有隔离措施,并发处理数据,会出现问题。

脏读

一个事务读取到另一个事务未提交的数据。

幻读

一个事务执行两次查询,第二次结果集包含第一次中没有或者已经被删除的数据;两次结果的数据数量不一样(和不可重复读的区别),是另一个事务再两次查询中间插入或删除数据造成的。

不可重复读

一个是无两次读取同一行数据,结果不同,中间另一个事务修改了该数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值