INNENTÜREN, TUNING DESIGN TÜREN aus Slowenien.


  • Ljubljana


    0038651 - 660 - 406

  • Ptuj


    0038651 - 316 - 130
    0038631 - 688 - 777

spring mybatis 트랜잭션 예제

spring mybatis 트랜잭션 예제

참조: MyBatis 3 매핑 프레임워크를 사용하여 CRUD 서비스 만들기 – 1부 및 MyBatis 3 및 스프링 프레임워크 통합 – Rai Study 블로그의 JCG 파트너 라훌 몬달의 2부. 트랜잭션 관리자에 대해 지정된 DataSource는 SqlSessionFactoryBean을 만드는 데 사용되는 데이터 원본과 같아야 하며 트랜잭션 관리가 작동하지 않습니다. 지금은 그게 다야. 물론 모든 Spring 기능과 마찬가지로 트랜잭션 관리를 위한 천 가지 구성 옵션이 있지만 이 문서의 시작 부분에서 작성한 데이터 원본 구성은 Spring이 메서드에서 트랜잭션을 만들 수 있는 수단을 제공하기에 충분합니다. 우리가 그들을 원하는 곳이다. 스프링 트랜잭션 처리를 사용 하려면 스프링 구성 파일에 DataSourceTransactionManager를 만들기 만하면 됩니다. MyBatis-Spring은 MyBatis에 특정한 새 트랜잭션 관리자를 만드는 대신 봄에 기존 DataSourceTransactionManager를 활용합니다. 게시물의 시작 부분에서 언급 했 듯이 SqlSessionFactoryBean MyBatis 구성 이 있는 위치를 정의 하는 configLocation 매개 변수가 있습니다. 여기에 여기에 제시 된 예제와 관련된 구성 파일에서 추출입니다 : 그러나 MyBatis-Spring xml에서 콩 SqlSessionFactory는 SqlSessionFactoryBean에 의해 생성됩니다 : 다음으로, 우리는 우리의 데이터 소스를 구성해야합니다 (응용 프로그램.yaml), 최소한의 구성으로 트랜잭션 관리, 풀 크기 및 연결 시간 초과를 쉽게 구성할 수 있습니다. DAO 클래스에 추가 코드가 필요하지 않습니다.

스테판은 SqlSessionManager 개체에 대해 이야기했습니다. 이 개체에는 기록이 있습니다. 실제로 SqlSessions를 스레드 로컬로 유지하는 기본 트랜잭션 관리자 개체입니다. 이 개체는 트랜잭션 전달 물건을 많이 했다 iBATIS 2.x에서 온다. MyBatis 3은 모든 것을 제거했으며 이 개체는 개발자가 기존 코드를 IB2에서 MB3으로 이식하는 데 유용했기 때문에 나중에 MyBatis 코드 베이스 moslty에 추가되었습니다. 그것은 완전히 메인 API에서 분리되어 있으며… 🙂 문서화되지 않았습니다. (비록 우리가 그것을 제거 하지 않습니다 약속!! ;)) MyBatis SqlSession은 프로그래밍 방식으로 트랜잭션을 처리하는 특정 방법을 제공합니다.

그러나 MyBatis-Spring을 사용할 때 콩은 스프링 관리 SqlSession 또는 스프링 관리 매퍼로 주입됩니다. 즉, Spring은 항상 거래를 처리합니다. 여기서는 모든 종류의 데이터 소스가 허용됩니다. 예를 들어 org.springframework.jdbc.jar: 스프링 관리 SqlSession을 통해 SqlSession.commit(), SqlSession.rollback() 또는 SqlSession.close()를 호출할 수 없습니다. 이렇게 하려고 하면 지원되지 않는OperationException 예외가 throw 됩니다. 이러한 메서드는 주입된 매퍼 클래스에서 노출되지 않습니다.