1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #899 from ipofss/patch-3

Update spring-transaction.md
This commit is contained in:
SnailClimb 2020-08-23 10:05:13 +08:00 committed by GitHub
commit b172a8055f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -55,10 +55,12 @@ public class OrdersService {
![](images/spring-transaction/bda7231b-ab05-4e23-95ee-89ac90ac7fcf.png)
- **原子性:** 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
- **一致性:** 执行事务前后,数据保持一致;
- **隔离性:** 并发访问数据库时,一个用户的事物不被其他事务所干扰也就是说多个事务并发执行时,一个事务的执行不应影响其他事务的执行;
- **持久性:** 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
- **原子性Atomicity** 一个事务transaction中的所有操作或者全部完成或者全部不完成不会结束在中间某个环节。事务在执行过程中发生错误会被回滚Rollback到事务开始前的状态就像这个事务从来没有执行过一样。即事务不可分割、不可约简。
- **一致性Consistency** 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。
- **隔离性Isolation** 数据库允许多个并发事务同时对其数据进行读写和修改的能力隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别包括未提交读Read uncommitted、提交读read committed、可重复读repeatable read和串行化Serializable
- **持久性Durability:** 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
[参考]https://zh.wikipedia.org/wiki/ACID
## 3. 详谈 Spring 对事务的支持