쌍용 강북 교육센터 국비학원 Day 39일차
Transaction (트랜잭션) 처리
데이터베이스의 데이터를 수정하는 도중에 예외가 발생된다면 DB의 데이터들은 수정이 되기 전의 상태로 다시 되돌아가져야 하고, 다시 수정 작업이 진행되어야 할 것이다.
이렇듯 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션(Transaction) 이다.
Transaction(트랜잭션) 이라 함은 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업단위를 말한다. 즉, 관련된 일련의 DML로 이루어진 한세트를 말한다. (트랜잭션은더 이상 쪼갤 수 없는 최소 작업 단위를 의미한다.)
Transaction 처리에서 가장 중요한 것은 모든 DML문이 성공해야만 최종적으로 모두 commit 을 해주고, DML문중에 1개라도 실패하면 모두 rollback 을 해주어야 한다는 것이다.
게시판을 예로들어 사용자가 글을 작성하면 동시에 포인트를 증가시켜준다고 할때 글작성과 포인트증가의 DML문이 같이 성공해야만 commit을 해주고 하나라도 실패하면 rollback을 해주어야 한다는 뜻이다.

트랜잭션 처리의 한 예이다. executeUpdate를 하여 n1의 값이 1이 되었을때만 다음에 포인트 증가하는 sql문을 update (n2) 하고 마지막에 commit을 완료해준다. 이후에 catch 구문에서 예외가 발생하였을때 rollback을 하는 메소드를 넣어준다.
보통 Connection 객체의 commit은 Auto commit으로 활용하기 때문에 Transaction 처리를 할 때에는 setAutoCommit ( false ) 를 이용해 수동 커밋으로 변경해주고 마지막 Finally 구문을 이용해 에서 다시 Auto commit으로 전환해준다.
보통의 Transaction의 처리는 이런식으로 이루어진다.
'Java' 카테고리의 다른 글
| 쌍용강북교육센터 국비 학원 Day 40일차 JDBC (게시판 만들기) (0) | 2023.02.28 |
|---|---|
| 쌍용강북교육센터 국비 학원 Day 38일차 JDBC (싱글톤 패턴 - Singleton Pattern) (0) | 2023.02.24 |
| 쌍용강북교육센터 국비 학원 Day 37일차 JDBC (오라클DB -> 자바Exception, DAO, DTO) (0) | 2023.02.23 |
| 쌍용강북교육센터 국비 학원 Day 36일차 JDBC (PreparedStatement, CallableStatement) (0) | 2023.02.22 |
| 쌍용강북교육센터 국비 학원 Day 35일차 JDBC (0) | 2023.02.22 |