Java 示例 - 保存点和回滚的使用 问题描述 如何在 Java 中创建保存点和回滚? 解决方案 以下示例使用回滚连接方法回滚到以前保存的 SavePoint。 import java.sql.*; public class jdbcConn { public static void main(String[] args) throws Exception { Class.forName("org.apache.derby.jdbc.ClientDriver"); Connection con = DriverManager.getConnection( "jdbc:derby://localhost:1527/testDb","name","pass"); Statement stmt = con.createStatement(); String query1 = "insert into emp values(5,'name','job')"; String query2 = "select * from emp"; con.setAutoCommit(false); Savepoint spt1 = con.setSavepoint("svpt1"); stmt.execute(query1); ResultSet rs = stmt.executeQuery(query2); int no_of_rows = 0; while (rs.next()) { no_of_rows++; } System.out.println("rows before rollback statement = " + no_of_rows); con.rollback(spt1); con.commit(); no_of_rows = 0; rs = stmt.executeQuery(query2); while (rs.next()) { no_of_rows++; } System.out.println("rows after rollback statement = " + no_of_rows); } } 复制 结果 上面的代码示例将产生以下结果。结果可能会有所不同。 rows before rollback statement = 4 rows after rollback statement = 3 复制