Savepoint 界面為您提供了額外的事務(wù)控制。大多數(shù)現(xiàn)代 DBMS 都支持其環(huán)境中的保存點(diǎn),例如 Oracle 的 PL/SQL。
設(shè)置保存點(diǎn)時(shí),您在事務(wù)中定義了邏輯回滾點(diǎn)。如果在保存點(diǎn)之后發(fā)生錯(cuò)誤,您可以使用回滾方法撤消所有更改或僅撤消保存點(diǎn)之后所做的更改。
Connection 對(duì)象有兩個(gè)新方法可以幫助您管理保存點(diǎn) –
setSavepoint(String savepointName): 定義一個(gè)新的保存點(diǎn)。它還返回一個(gè) Savepoint 對(duì)象。
releaseSavepoint(Savepoint savepointName):刪除一個(gè) Savepoint。請(qǐng)注意,它需要一個(gè) Savepoint 對(duì)象作為參數(shù)。該對(duì)象通常是setSavepoint()方法生成的保存點(diǎn)。
有一個(gè)rollback(String savepointName)方法,用于回滾工作到指定的保存點(diǎn)。
示例
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); }
登錄后復(fù)制
以上就是JDBC 中的保存點(diǎn)是什么?解釋?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!