개발 공부/JAVA

[JAVA] PreparedStatement를 이용한 트랜잭션(Transaction) 처리

sngynhy 2021. 7. 29. 23:31
try {
   conn = DriverManager.getConnection(url, user, password);
   conn.setAutoCommit(false); // 트랜잭션 처리를 위해서 AutoCommit 중지

   // Insert, Update, Delete 등 데이터 처리문 수행
   
   conn.commit(); // 데이터 처리시 에러가 없다면 commit 수행

catch(SQLException e) {
   conn.rollback(); // 수행 도중 에러 발생 시 rollback 처리
   e.printStackTrace();
} finally {
   conn.setAutoCommit(true); // 트랜잭션 처리 기본상태로 되돌리기
   if( conn != null ) conn.close();
  }

 

예시)

public void deleteTest(TestVO vo) throws SQLException {
		conn = JDBC.getConnection();
		try {
			conn.setAutoCommit(false);
			
			pstmt = conn.prepareStatement(sql_DELETE);
			pstmt.setInt(1, vo.getA());
			pstmt.executeUpdate();
			
			conn.commit();
		} catch (SQLException e) {
			conn.rollback();
			e.printStackTrace();
		} finally {
			JDBC.Close(conn, pstmt);
		}
		System.out.println("deleteTest() 수행완료");
	}