낭만 프로그래머
Spring + Mybatis에서 트랜젝션(Transaction) 처리 본문
전체 설정은 생략하고 사용하는 부분만 적어 놓았다
1. XML로 Bean을 정의하자
- 기본적으로 DataSource 와 SqlSessionFactoryBean 와 Mapper의 Bean은 정의해야 한다
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<constructor-arg ref="dataSource" />
</bean>
2. Controller 또는 Service 에서 사용하는 실행 구문이다
- 멤버 변수로 @Autowired로 DataSourceTransactionManager를 선언해야 한다
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);
try {
mapper.InsertTest();
mapper.UpdateTest();
transactionManager.commit(status);
}
catch (Exception e) {
transactionManager.rollback(status);
throw e;
}
'Java > Spring' 카테고리의 다른 글
Spring MVC 5와 Javascript를 이용한 파일(File) 다운로드(Download) (0) | 2021.12.27 |
---|---|
Spring MVC 5 에서 Spring Scheduler 사용하기 (0) | 2021.12.14 |
Intellij에 Spring MVC 5 설치하기 (0) | 2021.09.28 |
Spring Boot 기본 세팅 (DB + Mybatis + Log4j2) (0) | 2020.11.04 |
JSP에서 Invalid character 관련하여 400 에러가 발생시 (0) | 2020.04.14 |