관리 메뉴

I LOVE EJ

setAutoCommit(false) 에 대해서... 본문

Web Development/JSP

setAutoCommit(false) 에 대해서...

BeOne 2009. 6. 4. 19:19

우선 java는 객체지향언어입니다.

결국 어떤 작업을 하기 위해서는 클래스가 있어야 하며, 이에 대한 객체가 있어야 하며, 해당 객체가 가지고 있는 메쏘들 호출하여야 합니다.

setAutoCommit(boolean)
commit()
rollback()

메쏘드는 모두 java.sql.Connection 클래스의 것입니다.

소스상에서

con = Engsconn.getDBConnection();

부분에서 Connection 객체를 생성하신 것입니다.
결국 바로 밑에

con.setAutoCommit(false);

를 넣어주시면 되겠습니다.


그리고 commit의 경우는 insert/delete/update 후 정상적으로 Exception이 발생하지 않았다면, 호출해주셔야 합니다.
방법은 동일하게

conn.commit();

Exception이 발생하였다면,

conn.rollback();

입니다.

일반적으로 update/insert/delte가 있는 부분의 try 절안에서 SQL이 실행되고,
Exception을 catch 하는 블럭에서는 rollback을, 정상인 경우는 commit을 해주시면 되겠습니다.

예를 들어

conn.setAutoCommit(false);
try {
update 실행
conn.commit();

} catch(SQLException e) {
conn.rollback();
}
이런 식인것이죠.

setAutoCommit은 개발자가 코드상에서 commit/rollback을 하지 않아도,
프로그램이 정상으로 끝나면, commit
실행중 에러가 발생하면, 자동으로 rollback을 해주는데요.

setAutoCommit(true)이면, 이 기능을 사용하자는 것이고,
false이면, 사용자가 직접 commit/rollback을 하겠다는 것입니다.

그럼 즐거운 하루되세요~