慕粉3734731
2017-03-29 18:49
我使用的JDBC事务管理,为什么运行的结果跟没有使用结果相同
//有事务
public String transaction(Account from,Account to,Double amount) throws SQLException {
Connection conn=DBUtil.getConn();
conn.setAutoCommit(false);
try {
AccountDao accountDao=new AccountDao();
TransactionDao transDao=new TransactionDao();
//客户付钱
from.setAmount(from.getAmount()-amount);
accountDao.update(from);
String a=null;
a.split("1");
//银行收钱
to.setAmount(to.getAmount()+amount);
accountDao.update(to);
//添加交易信息
Transaction trans=new Transaction();
trans.setSource_account(from.getAccount());
trans.setDestination_account(to.getAccount());
trans.setAmount(amount);
trans.setSource_id(from.getId());
trans.setDestination_id(to.getId());
transDao.add(trans);
conn.commit();
return "success";
} catch (Exception e) {
// TODO Auto-generated catch block
conn.rollback();
e.printStackTrace();
return "fail";
}
}
两个都是有事务的,添加交易信息那里
//没有事务
public String trans(Account from,Account to,Double amount) throws Exception{
AccountDao accountDao=new AccountDao();
TransactionDao transDao=new TransactionDao();
//客户付钱
from.setAmount(from.getAmount()-amount);
accountDao.update(from);
//客户付了钱,银行没有收到钱
// String a=null;
// a.split("1");
//银行收钱
to.setAmount(to.getAmount()+amount);
accountDao.update(to);
//添加交易信息
Transaction trans=new Transaction();
trans.setSource_account(from.getAccount());
trans.setDestination_account(to.getAccount());
trans.setAmount(amount);
trans.setSource_id(from.getId());
trans.setDestination_id(to.getId());
transDao.add(trans);
return "success";
}
这是没有事务的,我的mysql引擎也是InnoDB的
你未使用事务的代码是什么?
JDBC之“对岸的女孩走过来”
49845 学习 · 86 问题
相似问题