23.11 트랜잭션 처리

트랜잭션(Transaction)은 기능 처리의 최소 단위로, 소작업들이 모두 성공하거나 모두 실패해야 한다. (All or Nothing)

JDBC에서는 기본적으로 자동 커밋(Auto Commit)이 켜져 있다. 트랜잭션을 수동으로 제어하려면 conn.setAutoCommit(false)를 호출하여 자동 커밋을 끈다.

  • conn.commit(): 모든 작업 성공 시 커밋
  • conn.rollback(): 예외 발생 시 롤백
try {
    conn.setAutoCommit(false); // 자동 커밋 끄기
    
    // ... 소작업 1 ...
    // ... 소작업 2 ...
    
    conn.commit(); // 모두 성공 시 커밋
} catch (Exception e) {
    conn.rollback(); // 실패 시 롤백
} finally {
    conn.setAutoCommit(true); // 자동 커밋 다시 켜기
    conn.close();
}
서브목차