Savepoint インターフェイスを使用すると、追加のトランザクション制御が可能になります。 Oracle の PL/SQL など、最新の DBMS のほとんどは、環境内のセーブポイントをサポートしています。
セーブポイントを設定すると、トランザクション内で論理ロールバック ポイントを定義します。セーブポイントの後にエラーが発生した場合は、ロールバック メソッドを使用して、すべての変更を元に戻すことも、セーブポイント以降に行われた変更のみを元に戻すこともできます。
Connection オブジェクトには、セーブポイントの管理に役立つ 2 つの新しいメソッドがあります -
setSavepoint(String savepointName): 新しいセーブポイントを定義します。また、Savepoint オブジェクトも返します。
releaseSavepoint(セーブポイント セーブポイント名): セーブポイントを削除します。パラメーターとして 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); }
以上がJDBC のセーブポイントとは何ですか?説明する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。