흠..... 여기 저기 블로그를 둘러보아도 다 똑같은 말 뿐이다. 어디서 ctrl+c, ctrl+v 를 한건가?


정작 중요한 내용은 없이 그냥 다들 setAutoCommit를 true 하면 자동적으로 commit이 되거나 rollback이 된다.


단순 이렇게만 적어놨다... 이게 뭐야? 그건 영어만 해석해도 알겠다.


내가 생각하는 입장에서는 이 setAutoCommit의 기능의 주요기능은 이게 아니라고 생각되어진다.


내가 중요하게 생각하는건 이거다.


Batch 를 사용한 DCL 에서 만약 3번째 DCL문이 잘못된 문장이었다면 실제 데이터는 어떻게 처리가 되는가?


뭔말인고 하니


총10개의 insert 쿼리문이 존재한다고 하자. 이때 3번째 쿼리문이 잘못된 쿼리였다.


만약 이럴때 setAutoCommit을 true로 설정해놓으면 결과는


첫번째 두번째 데이터는 insert 되고 나머지는 insert 되지 않는다.


하지만 setAutoCommit를 false로 설정해 놓고 성공시 commit, 실패시 rollback을 지정해놓으면


결과는 아무런 데이터도 들어가 않는다는 점이다.


모두 OK가 되던지 아니면 모두 FALSE가 되던지. 트랜잭션 개념에서는 매우 중요한 부분이다. 하지만 대부분의 사람들은 다르게 사용하는중...


setAutoCommit이 자동으로 commit되고 rollback되고 이게 중요한게 아니란 말이지...

그기능은 몰라도 감으로 알겠다.