- SQL Transaction 정리
- Spring Transaction
1. SQL Transaction 정리
트랜잭션은 하나 작업 단위 구성에 하나 이상의 데이터베이스 작업을 말한다.
-> 데이터의 일관성과 무결성을 보장하는 기법이다.
ACID 속성을 가지고 있습니다.
- Atomicity (원자성) : 트랜잭션의 모든 작업들이 수행되거나 모두 수행되지 않아야한다.
- Consistenct (일관성) : 트랜잭션이 완료된 후 데이터베이스는 일관성 상태를 유지한다
- Isolation (고립성) : 동시에 수행되는 트랜잭션들이 서로 간섭하지 않아야 한다.
- Durabillity (지속성) : 트랜잭션이 완료된 후 어떤 시스템 오류가 발생하더라도 결과가 지속적으로 반영되어야 한다.
SQL에서 Transaction 활용
더보기
트랜잭션 시작을 명시
START TRANSACTION;
데이터 조작을 진행
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
UPDATE table_name SET column1 = value1 WHERE condition;
DELETE FROM table_name WHERE condition;
조건에 따라 트랜잭션 커밋 또는 롤백
COMMIT; -- 모든 작업이 문제 없다면 커밋
ROLLBACK; -- 오류가 발생했다면 롤백
2. Spring Transaction
Spring 프레임워크에서는 데이터베이스 트랜잭션을 관리하기 위해 추상화된 높은 트랜잭션 관리 기능을 사용가능하다.
Spring 에서 Transaction 사용법
의존성 주입 pom.xml
더보기
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
스프링 컨테이너에 적용 applicationContext.xml
더보기
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="txManager">
<property name="dataSource" ref="bds" />
</bean>
<!-- 설정해둔 메서드들에 모든 R(select) 는 읽기 만 실행 -->
<!-- 설정해둔 메서드들에 모든 CUD(insert, update, delete) 에 관해서 실행 -->
<tx:advice transaction-manager="txManager" id="txAdvice">
<tx:attributes>
<tx:method name="select*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 클래스 명에 Impl 가 들어간 모든 메서드들에 적요합니다. -->
<aop:config>
<aop:pointcut expression="execution(* com.coma.app.biz..*Impl.*(..))" id="txPointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
728x90
'팀 프로젝트 > Web' 카테고리의 다른 글
[Spring] CKEditor API 흐름 정리 (0) | 2024.10.28 |
---|---|
최종 프로젝트 와이어 프레임 (0) | 2024.10.07 |
코마-중간 프로젝트 발표 영상 (0) | 2024.09.29 |
팀 프로젝트 전체 로직 (0) | 2024.09.23 |
게시판 페이지 CKEditor 글 수정 파트 (Controller) (1) | 2024.09.22 |