트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"
java transaction
try { con.setAutoCommit(false); //1 or more queries or updates con.commit(); } catch(Exception e) { con.rollback(); } finally { con.close(); } 출처 : https://stackoverflow.com/questions/4940648/how-to-start-a-transaction-in-jdbc |
spring transaction
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
인터페이스/클래스 | 메서드 | 설명 |
Interface TransactionManager | 최상위 인터페이스 | |
PlatformTransactionManager | commit(TransactionStatus status) getTransaction(TransactionDefinition definition) rollback(TransactionStatus status) |
트렌젝션 메니저 - 일반적사용, 인터페이스 |
AbstractPlatformTransactionManager, DataSourceTransactionManager, HibernateTransactionManager, JdbcTransactionManager, JmsTransactionManager, JpaTransactionManager, JtaTransactionManager |
DataSourceTransactionManager 기준 doBegin(Object transaction, TransactionDefinition definition) doRollback(DefaultTransactionStatus status) 외 |
DB 형태에 따른 구현 클래스 |
xml 트랜잭션 설정
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:annotation-driven/>
출처 : https://dlwjdcks5343.tistory.com/122