事務是由一條或多條 SQL 更新語句組成的不可分割工作單元。全成功提交,一失敗全回滾。核心方法在 java.sql.Connection:commit()、rollback()。
conn.setAutoCommit(false) 禁用自動提交conn.commit() 統一提交SQLException 時調用 conn.rollback() 回滾finally 塊關閉 Statement 與 ConnectionString sql1 = "update useraccount set money=money-1000 where name='username'";
String sql2 = "update sysaccount set money=money+1000 where name='sysname'";
conn.setAutoCommit(false);
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
conn.commit(); // 統一提交
// 異常時 rollback()
若無手動事務控制,第一條成功第二條失敗將導致數據不一致,手動提交有效防範此風險。