原业务层代码:
AccountServiceImpl_OLD.java
public class AccountServiceImpl_OLD implements AccountService {
private AccountDao accountDao;
private TransactionManager transactionManager;
// 实现set方法,使用Spring依赖注入
public void setTransactionManager(TransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
// 实现set方法,以便Spring使用set方法完成注入
public void setAccountDao(AccountDao accountDao) {
this.accountDao = accountDao;
}
@Override
public List<Account> findAll() {
try {
// 1、开启事务
transactionManager.beginTransaction();
// 2、执行操作
List<Account> accounts = accountDao.findAll();
// 3、提交事务
transactionManager.commit();
// 4、返回结果
return accounts;
} catch (Exception e) {
// 5、回滚操作
transactionManager.rollback();
throw new RuntimeException(e);// 如果产生异常,程序不在执行。
} finally {
// 6、释放连接
transactionManager.release();
}
}
@Override
public Account findAccountById(Integer id) {
try {
// 1、开启事务
transactionManager.beginTransaction();
// 2、执行操作
Account account = accountDao.findAccountById(id);
// 3、提交事务
transactionManager.commit();
// 4、返回结果
return account;
} catch (Exception e) {
// 5、回滚操作
transactionManager.rollback();
throw new RuntimeException(e);// 如果产生异常,程序不在执行。
} finally {
// 6、释放连接
transactionManager.release();
}
}
@Override
public void saveAccount(Account account) {
try {
// 1、开启事务
transactionManager.beginTransaction();
// 2、执行操作
accountDao.saveAccount(account);
// 3、提交事务
transactionManager.commit();
} catch (Exception e) {
// 5、回滚操作
transactionManager.rollback();
} finally {
// 6、释放连接
transactionManager.release();
}
}
@Override
public void updateAccount(Account account) {
try {
// 1、开启事务
transactionManager.beginTransaction(