JDBC 中的儲存點是什麼?解釋一下?


儲存點介面為您提供了額外的事務控制。大多數現代 DBMS 在其環境中都支援儲存點,例如 Oracle 的 PL/SQL。

當您設定一個儲存點時,您在事務中定義了一個邏輯回滾點。如果儲存點之後發生錯誤,您可以使用回滾方法撤消所有更改或僅撤消儲存點之後的更改。

Connection 物件有兩個新方法可幫助您管理儲存點 -

  • setSavepoint(String savepointName): 定義一個新的儲存點。它還返回一個 Savepoint 物件。

  • releaseSavepoint(Savepoint savepointName): 刪除一個儲存點。請注意,它需要一個 Savepoint 物件作為引數。該物件通常是透過 setSavepoint() 方法生成的一個儲存點。

有一個 rollback(String savepointName) 方法,該方法可將工作回滾到指定的儲存點。

示例:

try {
   //Assume a valid connection object conn
   conn.setAutoCommit(false);
   Statement stmt = conn.createStatement();
   //set a Savepoint
   Savepoint savepoint1 = conn.setSavepoint("Savepoint1");
   String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')";
   stmt.executeUpdate(SQL);
   //Submit a malformed SQL statement that breaks
   String SQL = "INSERTED IN Employees " + "VALUES (107, 22, 'Sita', 'Tez')";
   stmt.executeUpdate(SQL);
   // If there is no error, commit the changes.
   conn.commit();
} catch(SQLException se){
   // If there is any error.
   conn.rollback(savepoint1);
}

更新於:2019 年 7 月 30 日

259 次瀏覽

開啟您的 職業

完成課程即可獲得認證

開始學習
廣告
© . All rights reserved.