[jdbc][oracle] 커밋을 수동으로 해야 하는 이유

HMS·2022년 7월 27일
0

왜 커밋은 수동으로 해야할까? 자동으로 하는게 편한거 아닌가?

  • 자동으로 할 때 편한 경우는 DML이라고 쿼리문이 1개만 수행될 때는 그렇습니다.
    그런데 DELETE를 하고 UPDATE를 하고 INSERT를 하는 트랜잭션을 수행할 때는
    자동으로 커밋을 하면 제대로 수행되지 않습니다.

트랜잭션의 예인 ATM의 경우, 카드 삽입 -> 메뉴 선택 -> 비밀번호 입력 -> 현금 인출 -> 계좌에서 차감
-> 카드 제거 의 순으로 동작을 하게 되는데, 여기에서 현금을 인출해버렸는데 계좌에 돈이 없는 경우
오류가 발생함.

DML에서도 마찬가지임. 회원이 탈퇴하면 탈퇴한 정보를 저장하는 기능이 있다고 했을 때, 회원이 탈퇴한
후에 커밋을 하고 탈퇴한 정보를 저장하기 위해서 INSERT를 수행했지만 오류가 발생함.

profile
안녕하세요

0개의 댓글