0
JDBC를 사용하고 있지만 롤백 및 세이브 포인트에 몇 가지 문제가 있습니다. 이 코드가 실제로 세이브 포인트로 롤백되지 않고 삽입 된 레코드가 남아있는 이유를 이해할 수 없습니다.JDBC 저장 점이 롤백되지 않습니다.
try {
conn.setAutoCommit(false);
stmt = conn.createStatement();
sp = conn.setSavepoint();
stmt.executeUpdate("INSERT INTO test(id) VALUES(" + args[0] + ")");
if(true) {
conn.rollback(sp);
System.out.println("rollback");
}
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
System.out.println("rollback");
conn.rollback(sp);
} finally {
conn.commit();
}
미리 감사드립니다.
어떤 데이터베이스를 사용하고 있습니까? –