在Java中,可以通過設置連接的autoCommit屬性來控制事務的提交方式。
1. 手動提交事務:
// 獲取數據庫連接 Connection connection = DriverManager.getConnection(url, username, password); // 關閉自動提交事務 connection.setAutoCommit(false); try {????//?執行一系列的數據庫操作
????//?提交事務
????connection.commit(); }?catch?(Exception?e)?{
????//?出現異常時回滾事務
????connection.rollback(); }?finally?{
????//?關閉數據庫連接
????connection.close(); }
2. 自動提交事務:
//?獲取數據庫連接 Connection?connection?=?DriverManager.getConnection(url,?username,?password); //?開啟自動提交事務 connection.setAutoCommit(true); try?{????//?執行一系列的數據庫操作 }?catch?(Exception?e)?{
????//?處理異常 }?finally?{
????//?關閉數據庫連接
????connection.close(); }
在手動提交事務的方式下,需要在操作完成后手動調用commit()
方法提交事務,如果出現異常需要調用rollback()
方法回滾事務。
在自動提交事務的方式下,每個SQL語句執行后都會自動提交事務,無需手動調用commit()
方法。但是需要注意的是,如果在執行多個SQL語句時中間出現異常,可能會導致部分操作已經提交,部分操作未提交,這時需要根據實際情況進行處理。