SqlSessionFactory

SqlSessionFactory 에서 만들어지는 SqlSession 객체가 담당한다.

그리고 SqlSession 객체를 생성하는 시점에 트랜잭션에 관련한 속성을 결정한다.

 

 

SqlSessionFactory class 가 제공하는 openSession()

1. openSession(): 마이바티스 설정 파일의 설정을 그대로 사용하는 바이바티스 객체 생성

2. openSession(boolean autoCommit): 마이바티스 설정을 그대로 사용하되 자동 커밋 여부를 변경함

3. openSession(Connection connection)
: 마이바티스 연결 정보를 갖는 커넥션 타입 객체를 피라미터로 전달해서 마이바티스 객체 생성
: 만들어진 객체만큼 연결 객체가 갖는 여러 정보를 생성 시점에 설정 가능
: 연결 정보를 직접 사용하기 때문에 "마이바티스와 별도로 트랜잭션 제어 가능"

4. openSession(TransactionIsolationLevel level)
: 트랜잭션 격리 레벨을 지정해서 마이바티스 객체를 생성

그 외에 여러 메소드가 있음

 

 

openSession 메소드를 사용해 객체를 생성하게 되면 다음과 같은 특징을 가지게 됩니다.

 

- 객체를 생성할 때마다 트랜잭션 시작

- 마이바티스 설정 파일로 데이터 소스 사용

- 트랜잭션 관련 격리 레벨이나 전파 설정은 설정한 값을 사용해 설정됨

 

 

 

트랜잭션을 처리하는 메소드

1. commit(): 데이터를 입력, 수정, 삭제한 내용을 데이터베이스에 물리적으로 반영 (마이바티스가 변경한적 있다고 판단해야 처리함)

2. commit(boolean force): 내부적으로 데이터를 변경한 적 있는지 판단하지 않고 무조건 처리함

3. rollback(): 트랜잭션 롤백해서 직전까지 데이터를 반영하지 않고 무시함 마이바티스가 변경한적 있다고 판단해야 처리함)

4. rollback(boolean force): 내부적으로 데이터를 변경한 적 있는지 판단하지 않고 무조건 처리함

 

 

 

 

+ Recent posts