By: Vimala Viewed: 397 times Printer Friendly Format
The JDBC 3.0 API adds the method
sets a savepoint within the current transaction. The
method has been overloaded to take a savepoint argument.
The example below inserts a row into a table, sets the savepoint
and then inserts a second row. When the transaction is later rolled back to
the second insertion is undone, but the first insertion remains intact. In other
words, when the transaction is committed, only the row containing
will be added to
Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("INSERT INTO TAB1 (COL1) VALUES " + "(?FIRST?)"); // set savepoint Savepoint svpt1 = conn.setSavepoint("SAVEPOINT_1"); rows = stmt.executeUpdate("INSERT INTO TAB1 (COL1) " + "VALUES (?SECOND?)"); ... conn.rollback(svpt1); ... conn.commit();
Releasing a Savepoint
Connection.releaseSavepoint takes a
object as a parameter and removes it from the current transaction.
Once a savepoint has been released, attempting to reference it in a rollback
operation causes an
SQLException to be thrown. Any savepoints that
have been created in a transaction are automatically released and become invalid
when the transaction is committed, or when the entire transaction is rolled
back. Rolling a transaction back to a savepoint automatically releases and makes
invalid any other savepoints that were created after the savepoint in question.
When to Call the Method rollback
As mentioned earlier, calling the method
rollback aborts a
transaction and returns any values that were modified to their previous values.
If you are trying to execute one or more statements in a transaction and get an
you should call the method
rollback to abort the transaction and
start the transaction all over again. That is the only way to be sure of what
has been committed and what has not been committed. Catching an
tells you that something is wrong, but it does not tell you what was or was not
committed. Since you cannot count on the fact that nothing was committed,
calling the method
rollback is the only way to be sure.
Most Viewed Articles (in JDBC )
Latest Articles (in JDBC)
Comment on this tutorial
- Cloud Computing
- Java Beans
- Mac OS X
- Office 365
- Tech Reviews