如果我不使用connection.rollback(),由于事务尚未提交,我可以看到数据库的数据也不会改变任何东西,那为什么我仍然需要使用connection.rollback()?
try {
connection.setAutoCommit(false);
bankDao.transferMoney(+2000, 1, connection); //account1:+$2000
if(true){
throw new RuntimeException(); //make error
}
bankDao.transferMoney(-2000, 2, connection);//account2:-$2000
connection.commit();
} catch (Exception e) {
try {
connection.rollback();
System.out.println("something wrong, roll back");
} catch (Exception e1) {
e1.printStackTrace();
}
}