CODEDRAGON ㆍDevelopment/Spring
TransactionTemplate
기본적으로 사용한 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용됩니다. 많이 사용된 다는 것은 기존의 방법보다 개발자의 노력과 시간을 덜어줍니다.
기존 코드
PlatformTransactionManager transactionManager;
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
public void buyTicket(final TicketDto dto) {
// transactionManager 사용하기 위한 기본 설정
// 트랜잭션 처리를 위한 기본 객체 생성
TransactionDefinition definition = new DefaultTransactionDefinition();
// 트랜잭션 수행 객체을 얻어 status에 저장
TransactionStatus status = transactionManager.getTransaction(definition);
// try ~catch구문으로 트랜잭션 처리
try { // 트랜잭션 처리 구문을 포함시킵니다.
// 카드 결제 작업 - card테이블 변경
template.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
// SQL 쿼리 수행
return pstmt;
}
});
// 정상 수행시 커밋 수행
transactionManager.commit(status);
}catch(Exception e) { // 트랜잭션 실패시 처리 내용
e.printStackTrace();
// 에러 발생시 롤백 수행
transactionManager.rollback(status);
}
} |
'Development > Spring' 카테고리의 다른 글
IoC(Inversion of Control) - IoC가 아닌 경우 도식도, IoC인 경우 도식도 (0) | 2019.04.05 |
---|---|
STS 설치파일 다운로드 (0) | 2019.04.04 |
Spring - 생명 주기(life cycle) (0) | 2019.03.17 |
전체적인 컴포넌트 설계 도식도 (게시판) (0) | 2019.03.10 |
Error-Valid cannot be resolved to a type 해결방법 (0) | 2019.02.24 |