JDBC에서 트랜잭션 관리는 중요한 부분입니다.
트랜잭션은 데이터베이스에서 논리적 연산 단위를 의미하며, 여러 개의 SQL 문을 하나의 작업으로 취급하여 모두 성공하거나 모두 실패하도록 처리합니다.
트랜잭션 관리를 위해서는 다음 단계를 따릅니다.
단계 | 설명 |
---|---|
1. 트랜잭션 시작 | Connection 객체의 setAutoCommit(false) 메서드를 호출하여 자동 커밋 모드를 비활성화합니다. |
2. SQL 문 실행 | 여러 개의 SQL 문을 실행합니다. |
3. 트랜잭션 커밋 또는 롤백 | 모든 SQL 문이 성공적으로 실행되면 commit() 메서드를 호출하여 트랜잭션을 커밋합니다. 하나라도 실패하면 rollback() 메서드를 호출하여 트랜잭션을 롤백합니다. |
4. 자원 해제 | ResultSet, Statement, Connection 객체를 적절히 해제합니다. |
예시 코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
Connection conn = DriverManager.getConnection(url, user, password);
try {
// 1. 트랜잭션 시작
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
// 2. SQL 문 실행
stmt.executeUpdate(“INSERT INTO users (name, age) VALUES (‘Alice’, 25)”);
stmt.executeUpdate(“UPDATE accounts SET balance = balance + 1000 WHERE id = 1”);
// 3. 트랜잭션 커밋
conn.commit();
stmt.close();
} catch (SQLException e) {
// 3. 트랜잭션 롤백
conn.rollback();
// 예외 처리
} finally {
// 4. 자원 해제
conn.setAutoCommit(true);
conn.close();
}
|
cs |
이렇게 트랜잭션 관리를 통해 데이터의 일관성과 무결성을 보장할 수 있습니다.
실제 프로젝트에서는 더 복잡한 상황을 고려해야 하며, 트랜잭션 격리 수준, 데드락 처리 등의 추가적인 고려 사항이 있습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.