spring mybatis 트랜잭션 예제

이 구성에서 MyBatis는 CMT로 구성된 다른 Spring 트랜잭션 리소스처럼 실행됩니다. Spring은 기존 컨테이너 트랜잭션을 자동으로 사용하고 SqlSession을 연결합니다. 트랜잭션이 시작되지 않고 트랜잭션 구성에 따라 트랜잭션이 필요한 경우 Spring은 새 컨테이너 관리 트랜잭션을 시작합니다. 게시물의 시작 부분에서 언급 했 듯이 SqlSessionFactoryBean MyBatis 구성 이 있는 위치를 정의 하는 configLocation 매개 변수가 있습니다. 다음은 여기에 제시된 예제와 관련된 구성 파일의 추출입니다. MyBatis API 전혀: http://mybatis.github.io/cdi/getting-started.html 요즘 봄의 기본 데이터 원본 구현은 히카리입니다. Github에서 프로젝트에 대한 자세한 내용을 확인할 수 있으며, 여기서 많은 사용자 지정 옵션을 찾을 수 있습니다. 이제 봄의 JdbcTemplate를 살펴보면 API가 훨씬 더 복잡하다는 것을 알 수 있습니다. 그것은 당신이 Jdbc에 조금 가면 지불해야하는 것입니다. 나는 이것이 나쁘거나 좋다고 말하지 않을 것이고, 각 MyBatis 사용자에 대해 100 명의 JdbcTemplate 사용자가 있다고 가정하므로 아마도 그들의 접근 방식이 훌륭하다고 가정합니다. MyBatis는 다른 않습니다. Spring은 이미 훌륭한 거래 관리를 가지고 있으며 MyBatis에 대한 최소한의 노력으로 이를 활용할 수 있습니다. 응용 프로그램 클래스에 다음을 추가하기만 하면 팩터리 빈을 구성하려면 Spring XML 구성 파일에 다음을 넣습니다.

전 mybatis 사용자, 나는 라이브러리가 나에게 모든 데이터베이스 지향 응용 프로그램에서 실제로 피할 수없는 주제인 트랜잭션 관리 및 연결 풀링을 모두 할 수있는 괜찮은 API를 준 것이 좋았다는 것을 발견했다. 그들의 목표는 JDBC의 사용을 용이하게하는 것이었고,이 점에서 그들은 훌륭한 일을했습니다. 그래서 먼저, mybatis-spring에서 스프링 트랜잭션 처리를 활성화해야합니다 : SqlSessionDaoSupport 또는 SqlSessionTemplate에 의해 수동으로 DAOs를 코딩하지 않도록하기 위해 사용되므로 자바 코드에는 DAO가 없습니다! SqlSession을 만들고 닫습니다. 진행 중인 Spring 트랜잭션이 있는 경우 트랜잭션이 완료될 때 세션도 커밋되거나 롤백됩니다.