import java.sql.*; public class TransactionTest2 { public static void main(String args[]) throws Exception { Class.forName("org.postgresql.Driver"); Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5750/jurka","jurka",""); Statement stmt = conn.createStatement(); stmt.executeUpdate("CREATE TEMP TABLE tt (a int)"); stmt.executeUpdate("INSERT INTO tt VALUES (3)"); stmt.close(); printRowCount(conn, "Initial"); conn.setAutoCommit(false); PreparedStatement pstmt = conn.prepareStatement("INSERT INTO tt VALUES (?)"); for (int i=0; i<10; i++) { pstmt.setInt(1,i); pstmt.executeUpdate(); } pstmt.close(); printRowCount(conn, "After Inserts"); conn.rollback(); printRowCount(conn, "After Rollback"); conn.setAutoCommit(true); printRowCount(conn, "After AutoCommit"); conn.close(); } private static void printRowCount(Connection conn, String label) throws SQLException { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM tt"); rs.next(); System.err.println(label + " Row Count: " + rs.getInt(1)); rs.close(); stmt.close(); } }