본문 바로가기
JAVA

Mybatis PlatformTransactionManager 프로그래밍 방식으로 호출 진행 예

by Hwoarang757 2023. 8. 17.

스프링 PlatformTransactionManager 로 DB 트랜잭션 관리하는 방법 : 네이버 블로그 (naver.com)

 

스프링 PlatformTransactionManager 로 DB 트랜잭션 관리하는 방법

스프링 PlatformTransactionManager 로 DB 트랜잭션 소스 코드를 개발하는 방법은 다음과 같습니다. 1...

blog.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;
    }


}

 

 

감사합니다.