在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例。
请通过以下方式下载github源代码:
git clone https://github.com/davenkin/java_transaction_workshop.git
BankService的功能为:某个用户有两个账户,分别为银行账户和保险账户,并且有各自的账户号,BankService的transfer方法从该用户的银行账户向保险账户转帐,两个DAO分别用于对两个账户表的存取操作。
定义一个BankService接口如下:
package davenkin;
public interface BankService {
public void transfer(int fromId, int toId, int amount);
}