mybatis 트랜잭션 예제

다음 예제는 @Results 개의 추가 의 id 특성을 지정하여 ResultMap의 이름을 지정하는 방법을 보여 준다. openSession() 메서드는 SqlSession을 만듭니다. SqlSession은 MyBatis로 작업하기 위한 기본 Java 인터페이스입니다. 이 인터페이스를 통해 우리는 명령을 실행 매퍼를 얻고 트랜잭션을 관리합니다. 이 섹션의 나머지 예제에서는 이 디렉터리 구조를 따르고 있다고 가정합니다. 기본적으로 MyBatis는 데이터베이스가 삽입, 업데이트 또는 삭제 호출에 의해 변경되었음을 감지하지 않는 한 실제로 커밋되지 않습니다. 이러한 메서드를 호출하지 않고 어떻게 든 변경한 경우 커밋 및 롤백 메서드에 true를 전달하여 커밋되도록 할 수 있습니다(참고, 자동 커밋 모드에서 세션을 강제로 적용하거나 외부 트랜잭션을 사용하는 메서드 관리자)를 참조하십시오. MyBatis가 커밋을 호출하지 않으면 롤백()을 호출할 필요가 없습니다. 그러나 여러 커밋 및 롤백이 가능한 세션에 대해 보다 세밀한 제어가 필요한 경우 이를 가능하게 하는 롤백 옵션이 있습니다. 지금은 그게 다야.

물론 모든 Spring 기능과 마찬가지로 트랜잭션 관리를 위한 천 가지 구성 옵션이 있지만 이 문서의 시작 부분에서 작성한 데이터 원본 구성은 Spring이 메서드에서 트랜잭션을 만들 수 있는 수단을 제공하기에 충분합니다. 우리가 그들을 원하는 곳이다. 환경 매개 변수를 사용하는 빌드 메서드를 호출하면 MyBatis는 해당 환경에 대한 구성을 사용합니다. 물론 잘못된 환경을 지정하면 오류가 발생합니다. 환경 매개 변수를 사용하지 않는 빌드 메서드 중 하나를 호출하면 기본 환경이 사용됩니다(위의 예에서 기본=”개발”로 지정). 방법의 대부분은 꽤 자명하다. 자동 커밋을 사용하려면 true 값을 선택적 autoCommit 매개 변수에 전달합니다. 사용자 고유의 연결을 제공하려면 연결 매개 변수에 연결 인스턴스를 전달합니다.

MyBatis는 제공된 연결 개체가 현재 사용 중인 설정을 사용하므로 연결 및 자동 커밋을 모두 설정하는 재정의가 없습니다. MyBatis는 트랜잭션 격리 수준이라고 하는 트랜잭션 격리 수준에 Java 열거 래퍼를 사용하지만, 그렇지 않으면 예상대로 작동하고 JDBC에서 지원하는 5 개 수준이 있습니다 (없음, READ_UNCOMMITTED, READ_COMMITTED, REPEATable_READ, SERIALIZABLE) .

Comments are closed.