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): 내부적으로 데이터를 변경한 적 있는지 판단하지 않고 무조건 처리함
'mybatis' 카테고리의 다른 글
WHERE 절은 왜 OUTER JOIN 에서 데이터를 누락시키는가? (0) | 2023.09.13 |
---|---|
mybatis associate, collection, alias (0) | 2023.09.12 |
마이바티스란? (과정 및 개요) (0) | 2023.09.10 |
Spring + MySQL + Mybatis (0) | 2023.08.17 |