MyBatis SqlSessionTemplate 를 사용한 자원 해제

항상 신경 쓰이는 것은 자원해제와 트랜젝션...

 

SqlSessionTemplate  의 자원해제

 

MyBatis-Spring 프레임워크는 SqlSession 객체와는 달리

SqlSessionTemplate 을 통해 자원 해제를 해결 함.

 

SqlSession 은 close()를 호출해야 함.

 

하지만 SqlSessionTemplate  의 경우 인터셉터를 통해 close() 를 호출하여 알아서

자원해제의 문제를 해결해 주었다.

 

 

트랜잭션

 

트랜잭션의 경우 마이바티스가 스프링 트랜잭션 과 아주 잘 어울린다.

 

스프링의 DataSourceTransactionManager 와 잘 융합된다.

 

스프링 XML 설정


<bean id="dbTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource" />
</bean> 

 


<tx:advice> 를 이용하여 트랜잭션을 처리 한다.

(@Transaction Annotation 을 사용해도 됨)

 


<tx:advice id="txAdvice" transaction-manager="dbTransactionManager">
  <tx:attributes>
   <tx:method name="insert*" rollback-for="Exception"/>
   <tx:method name="update*" rollback-for="Exception" />
   <tx:method name="remove*" rollback-for="Exception" />
  </tx:attributes>
</tx:advice>

 

 

 

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기