◇ LAB · DB

@Transactional 기본

데이터와 MyBatis — 실습

📍 지금 어디를 만지고 있나요?
브라우저
데이터와 MyBatis
DB

사전 준비

이번 실습의 목표

메서드 내 모든 DB 작업을 하나의 단위로 묶음. 하나라도 실패하면 모두 롤백.

1
코드 작성
@Service
public class TransferService {

    @Transactional
    public void transfer(int from, int to, int amount) {
        accountMapper.withdraw(from, amount);   // 출금
        accountMapper.deposit(to, amount);      // 입금
        // 둘 중 하나라도 예외 발생 → 자동 롤백
        // 둘 다 성공 → 커밋
    }
}
CHECKPOINT
  • 코드를 작성한 뒤 빨간 줄(컴파일 오류)이 없는가?
2
실행 + 결과 확인

Run on Server 또는 javac+java 로 실행하고 결과를 확인합니다.

CHECKPOINT
  • 예상한 동작이 일어났는가?
  • 안 됐다면 F12 / 콘솔 / 로그 어디서 단서가 보이는가?

실습 완료 체크리스트

@Transactional = 메서드의 모든 DB 작업을 한 단위로
하나 실패하면 전부 롤백
Service 계층에 붙임