- Java & MySQL 教程
- Java & MySQL - 首頁
- Java & MySQL - 概述
- Java & MySQL - 環境設定
- Java & MySQL - 示例程式碼
- Java & MySQL - 連線
- Java & MySQL - 異常
- Java & MySQL 語句
- Java & MySQL - Statement
- Java & MySQL - PreparedStatement
- Java & MySQL - CallableStatement
- Java & MySQL 結果
- Java & MySQL - 結果集
- Java & MySQL - 遍歷結果集
- Java & MySQL - 檢視結果集
- Java & MySQL - 更新結果集
- Java & MySQL 事務
- Java & MySQL - 事務
- Java & MySQL - 提交 & 回滾
- Java & MySQL - 儲存點事務
- Java & MySQL 批次處理
- Java & MySQL - 批次處理
- 批次處理 - Statement
- 批次處理 - PreparedStatement
- Java & MySQL 流式處理
- Java & MySQL - 流式資料
- Java & MySQL 示例
- Java & MySQL - 建立資料庫
- Java & MySQL - 選擇資料庫
- Java & MySQL - 刪除資料庫
- Java & MySQL - 建立表
- Java & MySQL - 刪除表
- Java & MySQL - 插入記錄
- Java & MySQL - 選擇記錄
- Java & MySQL - 更新記錄
- Java & MySQL - 刪除記錄
- Java & MySQL - Where 子句
- Java & MySQL - Like 子句
- Java & MySQL - 資料排序
- Java & MySQL 有用資源
- Java & MySQL - 快速指南
- Java & MySQL - 有用資源
- Java & MySQL - 討論
Java & MySQL - 事務
如果您的 JDBC 連線處於自動提交模式(預設情況下),則每個 SQL 語句在完成時都會提交到資料庫。
對於簡單的應用程式,這可能沒問題,但您可能希望關閉自動提交併自行管理事務的原因有三個:
提高效能。
維護業務流程的完整性。
使用分散式事務。
事務使您可以控制是否以及何時將更改應用於資料庫。它將單個 SQL 語句或一組 SQL 語句視為一個邏輯單元,如果任何語句失敗,則整個事務都將失敗。
要啟用手動事務支援而不是 JDBC 驅動程式預設使用的自動提交模式,請使用 Connection 物件的setAutoCommit()方法。如果將布林值 false 傳遞給 setAutoCommit( ),則關閉自動提交。您可以傳遞布林值 true 以再次將其開啟。
例如,如果您有一個名為 conn 的 Connection 物件,請編寫以下程式碼以關閉自動提交:
conn.setAutoCommit(false);
提交 & 回滾
完成更改並想要提交更改後,請在連線物件上呼叫commit()方法,如下所示:
conn.commit( );
否則,要回滾使用名為 conn 的 Connection 進行的資料庫更新,請使用以下程式碼:
conn.rollback( );
使用儲存點
新的 JDBC 3.0 Savepoint 介面為您提供了額外的交易控制。
設定儲存點時,您在事務中定義了一個邏輯回滾點。如果在儲存點之後發生錯誤,您可以使用回滾方法撤消所有更改或僅撤消儲存點之後進行的更改。
Connection 物件有兩個新方法可以幫助您管理儲存點:
setSavepoint(String savepointName) - 定義一個新的儲存點。它還會返回一個 Savepoint 物件。
releaseSavepoint(Savepoint savepointName) - 刪除儲存點。請注意,它需要一個 Savepoint 物件作為引數。此物件通常是 setSavepoint() 方法生成的儲存點。
有一個rollback (String savepointName)方法,它將工作回滾到指定的儲存點。