Definir e desfazer até um ponto de salvamento Pontos de salvamentodefinir e desfazer

A API do JDBC 3.0 adiciona o método Connection.setSavepoint, que define um ponto de salvamento na transação corrente. O método Connection.rollback foi sobrecarregado para receber o argumento ponto de salvamento. Para obter mais informações deve ser consultado .

O código do exemplo abaixo insere uma linha na tabela, define o ponto de salvamento svpt1, e insere uma segunda linha. Quando mais tarde a transação é desfeita até svpt1, a segunda inserção é desfeita, mas a primeira inserção permanece intacta. Em outras palavras, quando a transação é efetivada somente a linha contendo '1' é adicionada à TABELA1. // A auto-efetivação deve estar desativada // para utilizar pontos de salvamento. conn.setAutoCommit(false); Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("INSERT INTO TABELA1 (COL1) VALUES(1)"); // definir o ponto de salvamento Savepoint svpt1 = conn.setSavepoint("S1"); rows = stmt.executeUpdate("INSERT INTO TABELA1 (COL1) VALUES (2)"); ... conn.rollback(svpt1); ... conn.commit();