backend/iBatis

[iBATIS] 5. Transaction

버리야 2008. 9. 1. 19:56
반응형

5. Transaction

iBatis 지원하는 가지 트랜잭션 범위

  * 자동 트랜잭션 : 단순한 개의 SQL 구문은 명시적으로 구분된 트랜잭션을 필요로 하지 않는다 .

   * 로컬 트랜잭션 : 간단하고 범위가 좁은 트랜잭션으로 여러 SQL 구문을 포함하지만 단일 데이터베이스에서 수행된다 .

   * 글로벌 트랜잭션 : 복잡하고 범위가 넓은 트랜잭션으로 여러 SQL 구문을 여러 데이터베이스 혹은 잠재적으로 데이터베이스가 아닌 JMS 큐나 JCA 커넥션 같은 다른 트랜잭션이 가능한 리소스상에서 실행된다 .

   * 사용자 정의 트랜잭션 : 사용자 맘대로 ~



"자동 트랜잭션" 보충 설명.

JDBC는 'autocommit(자동커밋)' 모드이고 iBatis는 자동 커밋을 직접 지원하지 않고, 대신 자동 트랜잭션을 지원한다. 이는 간단한 update 구문이나 쿼리를 한 개의 메소드 호출로 수행하면서 트랜잭션을 어떻게 구분할지에 대해서 걱정할 필요가 없게 해준다. 해당 구문은 트랜잭션 내부에서 실행될 것이지만 명시적으로 트랜잭션을 시작하고 커밋하고 종료할 필요가 없다.
자동 트랜잭션 내부에서 SQL 구문을 실행하기 위해 특별히 필요한 것은 아무것도 없다. 그냥 구문을 실행하기만 하면 된다. 

더 세밀하게 제어할 필요가 있을 때는 개발자가 명시적으로 로컬 혹은 글로벌 트랜잭션을 사용해야 한다.

반응형