Savepoint savepoint=null;保存點,記錄操作位置,之后可以回滾到指定位置
try{
//獲得鏈接
conn=。。。。
//開啟事務
conn.setAutoCommit(false);
A事務
B事務
savepoint=conn.setpoint();
C事務
D事務
//提交事務
conn.commit(); 在一個事務里面,即使CD異常,AB也能保存提交!
}catch(){
if(savepoint!=null){//CD異常
//回滾到CD之前
conn.rollback(savepoint);
//提交AB
conn.commit();
}else{//AB異常
//回滾AB
conn.rollback();}
}