首页 > 编程语言 > 详细

Spring事务隔离级别和传播机制

时间:2021-05-05 17:27:00      阅读:23      评论:0      收藏:0      [点我收藏+]

引言

什么是事务?

在理解事务之前,我们要先了解事务的基本作用
比如在生活中有这样一个场景————取钱,每个人应该都干过的事
在ATM机上取钱,1.输入密码————2.输入金额————3.银行扣钱————4.ATM出钱
以上几个步骤中,3和4就是必须是一个事务,因为它们之间,要么都完成,要么都不完成
事务其实就是用来解决这种类似的问题
想象一理,如果第3步成功了,第4步失败(报错)了,这将会导致非常严重的后果,对于普通人而言,钱被扣了,但ATM机没出钱,肯定会发飙的吧。哈哈
所以第3步和第4步,必须要全部被执行完成,这样才能保证最后数据的一致性。
对应到业务开发过程中,第3步和第4步,我们把它认为是一个执行单元,但在代码里面它是一条条的代码,所以必须要有一种机制能够保证它们要么全部执行成功,要么全部执行失败。
这就是事务的基本应用。
Spring事务是建立在持久层的基础之上的,要理解Spring事务,就必须要先了解事务的相关特性

事务特性

1. 原子性(Atomicity)

事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。

2. 一致性(Consistency)

一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。

3. 隔离性(Isolation)

可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。

4. 持久性(Durability)

一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。

Mysql事务实现

1.关闭自动提交功能(SET COMMIT = TRUE)
2.开启事务
3.编写SQL语句
4.提交事务
5.打开自动提交功能(SET COMMIT = FALSE)
Mysql实现


Spring事务实现原理

1. 编程式事务管理

2. 声明式事务管理

Spring事务隔离级别和传播机制

原文:https://www.cnblogs.com/yanchuanbin/p/14731530.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!