mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-20 22:17:09 +08:00
Update spring-transaction.md
This commit is contained in:
parent
ef681091d9
commit
16c6e1ef9f
@ -1,6 +1,6 @@
|
||||
大家好,我是Guide哥,答应读者的 **Spring 事务**分析总结终于来了。这部分内容比较重要,不论是对于工作还是面试,但是网上比较好的参考资料比较少。
|
||||
大家好,我是 Guide 哥,前段答应读者的 **Spring 事务**分析总结终于来了。这部分内容比较重要,不论是对于工作还是面试,但是网上比较好的参考资料比较少。
|
||||
|
||||
如果本文有任何不对或者需要完善的地方,请帮忙指出!Guide哥感激不尽!本文已经同步更新到我的 JavaGuide ,地址:
|
||||
如果本文有任何不对或者需要完善的地方,请帮忙指出!Guide 哥感激不尽!
|
||||
|
||||
## 1. 什么是事务?
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
_Guide 哥:大家应该都能背上面这句话了,下面我结合我们日常的真实开发来谈一谈。_
|
||||
|
||||
**我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 `savePerson()` 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。**
|
||||
我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 `savePerson()` 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。
|
||||
|
||||
```java
|
||||
public void savePerson() {
|
||||
@ -17,7 +17,7 @@ _Guide 哥:大家应该都能背上面这句话了,下面我结合我们日
|
||||
}
|
||||
```
|
||||
|
||||
另外,需要格外注意的是:**事务能否生效数据库引擎是否支持事务是关键。常用的 MySQL 数据库默认使用支持事务的`innodb`引擎。但是,如果把数据库引擎变为 myisam,那么程序也就不再支持事务了!**
|
||||
另外,需要格外注意的是:**事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的`innodb`引擎。但是,如果把数据库引擎变为 `myisam`,那么程序也就不再支持事务了!**
|
||||
|
||||
事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账 1000 元,这个转账会涉及到两个关键操作就是:
|
||||
|
||||
@ -35,7 +35,8 @@ public class OrdersService {
|
||||
this.accountDao = accountDao;
|
||||
}
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, readOnly = false, timeout = -1)
|
||||
@Transactional(propagation = Propagation.REQUIRED,
|
||||
isolation = Isolation.DEFAULT, readOnly = false, timeout = -1)
|
||||
public void accountMoney() {
|
||||
//小红账户多1000
|
||||
accountDao.addMoney(1000,xiaohong);
|
||||
|
Loading…
x
Reference in New Issue
Block a user