Spring事务(一)-事务回顾

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fu123123fu/article/details/86181104

事务回顾

什么是事务?

事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。

经典案例
张三账户有1000元,李四账户也有1000元。此时,张三要给李四转账200元,这个操作包括如下步骤:
① 修改张三账户,扣除200元
② 修改李四账户,增加200元
只有以上这两步都完成了,才算转账成功。任何一步失败都是不行的,也就是说①和②是存在一个事务中,并且必须满足事务的一系列特性。

事务的特性
① 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

以上转账步骤①和②要么一起成功,要么一起失败。

② 一致性:指事务前后数据的完整性必须保持一致。

张三给李四转账,但是他俩的账户总额保持不变,不能出现张三账户减少200元,李四账户没增加200元的情况。

③ 隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。

张三的账户在转账的同时,另一个事务也在操作张三的账户,导致数据出现重复操作的情况。

④ 持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。

张三给李四转账完成后,这个结果是永久性的,也就是说张三的账户实实在在的减少了200元,而李四的账户实实在在的增加了200元。

猜你喜欢

转载自blog.csdn.net/fu123123fu/article/details/86181104