关于事务(Transaction)的几个概念

事务(Transaction)

原子性(Atomicity)

事务必须是一个不可分割的整体

一致性(Consistency)

执行完数据库操作后,数据不会被破坏. (尤其在数据库领域)
例如:如果从 A 账户转账到 B 账户, A 账户扣了钱,那 B 账户一定有加钱

隔离性(Isolation)

我们必须保证数据库操作之间是“隔离”的(线程之间有时也要做到隔离),彼此之间没有任何干扰

事务隔离级别(Transaction Isolation Level)

要想真正的做到操作之间完全没有任何干扰是很难的,于是乎,每天上班打酱油的数据库专家们,开始动脑筋了,“我们要制定一个规范,让各个数据库厂商都支持我们的规范!”,这个规范就是:事务隔离级别(Transaction Isolation Level)。
事务隔离级别脏读不可重复读幻读
READ_UNCOMMITTED允许允许允许
READ_COMMITTED禁止允许允许
REPEATABLE_READ禁止禁止允许
SERIALIZABLE禁止禁止禁止

持久性(Durability)

当我们执行一条 insert 语句后,数据库必须要保证有一条数据永久地存放在磁盘中

由事务引发的问题

1. 脏读:事务 A 读取了事务 B 未提交的数据,并在这个基础上又做了其他操作。
2. 不可重复读:事务 A 读取了事务 B 已提交的更改数据。
3. 幻读:事务 A 读取了事务 B 已提交的新增数据。

Spring解决方案

1. PROPAGATION_REQUIRED
2. RROPAGATION_REQUIRES_NEW
3. PROPAGATION_NESTED
4. PROPAGATION_SUPPORTS
5. PROPAGATION_NOT_SUPPORTED
6. PROPAGATION_NEVER
7. PROPAGATION_MANDATORY

事务思维导图

事务管理

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值