JDBC practice_240308

Choi Suyeon·2024년 3월 8일

Transaction

  • 하나의 Transaction으로 여러 개의 쿼리문이 구성되었을 때의 처리
    Transaction 대상쿼리문 insert, update, delete
    -구성된 모든 쿼리문이 정상적으로 수행되면 Transaction이 완료되고, 쿼리문이 비정상적으로 수행되었다면 rollback으로 Transaction을 취소해야한다.

-단일 쿼리문으로 Transaction이 구성되는 경우는 autocommit을 수행하는 것이 편리

-Connection은 autoCommit(true)이 기본 설정으로 query문 하나로 Transation이 구성된다.

1. autocommit을 해제
con.setAutoCommit(true); //true - autocommit, false - autocommit 해제

2. Connection을 field에 선언 => Connection.close()하면 commit이 된다.

3. 쿼리문을 수행하는 method에서는 반환형을 int설정
public int method(){
	쿼리문 1		 
    int 수행행수   //쿼리문을 실행하기 위한
    			 //쿼리문 생성객체를 여러 개 얻어 사용.
    쿼리문 2
    int 수행행수
    
    return 모든 수행행수;
}

4. 호출하는 곳에서 목표로 한 행수인지를 비교하여 commit 또는 rollback을 결정한다.
int cnt = method();
try{
	if( cnt 목표로 한 행수? ){
		con.commit();
	}else{
		con.rollback();
	}//end else
}catch(SQLException e){
	con.rollback();
}//end catch

0개의 댓글