스프링 PlatformTransactionManager 로 DB 트랜잭션 관리하는 방법 : 네이버 블로그 (naver.com)
1. contextConfigLocation 의 XML 에 bean으로 추가 합니다.!
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
2. Service 의존성 주입 진행
<bean id="testService"
class="com.test.TestService"
p:sqlSession-ref="sqlSession"
p:transactionManager-ref="transactionManager"
/>
3. Service Class 에 선언 진행
public class TestService {
private SqlSession sqlSession;
private PlatformTransactionManager transactionManager;
public void setSqlSession(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
// 서비스 호출 시에 Transaction 프로그래밍 방식으로 수동 설정 진행
public List<Properties> TestMethod(HashMap<String, String> paramHash) throws Exception {
List<Properties> list = null;
TransactionStatus txStatus = null;
try {
txStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
sqlSession.insert("testMap.updateQuery", paramHash);
list = sqlSession.selectList("testMap.selectQuery", paramHash);
} catch(Exception exception) {
System.out.println(exception);
transactionManager.rollback(txStatus);
}
transactionManager.commit(txStatus);
return list;
}
}
감사합니다.
'JAVA' 카테고리의 다른 글
[JAVA] zip4j 이용하여 파일 앞축 및 암호 설정 테스트 진행 (0) | 2023.10.24 |
---|---|
특정 위치에 파일 중복 여부 체크 하고 새로운 파일명 구하기 예제 (0) | 2023.09.07 |
[JAVA] gradle 이용 runnable jar 생성 시에 dependency library 포함 진행 (0) | 2023.07.05 |
[JAVA] CloseableHttpClient를 이용한 Http Post 호출 예제 (0) | 2023.07.05 |
LocalDateTime,TimeStamp 이용 timestamp 값 얻기 (0) | 2023.07.03 |