spring的事务管理

一、事务在什么背景下产生的

  事务的出现是为了确保数据的完整性和一致性。

二、什么是事务

  作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

三、事务的特性(ACID)

  原子性:一个事务是一个不可分割的工作单位。

  一致性:事务必须是使数据库从一个一致性状态变到另一个一致性状态。

  隔离性:一个事务的执行不能被其他事务干扰。

  持久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

四、并发事务产生的问题

  1、脏读:一 个事务读取了另外一个事务要修改但没有修改成功的数据。

  例如:事务B执行过程中修改了数据X,在未提交前,事务A读取了X,而事务B却回滚了,这样事务A就形成了脏读。

  2、不可重复读:当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改成功的数据,导致两次读取到的数据不匹配。

  例如:事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了。

  3、幻读:一个事务根据相同的查询条件,重新执行查询,返回的记录中包含与前一次执行查询返回的记录不同的行。

  例如:事务A首先根据条件索引得到N条数据,然后事务B改变了这N条数据之外的M条或者增添了M条符合事务A搜索条件的数据,导致事务A再次搜索发现有N+M条数据了,就产生了幻读。

  这三种情况都是针对同时进行的几个事务对相同的数据进行读取时造成的。

五、事务的隔离级别(Isolation Leve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值