트랜잭션
-
[JDBC] 트랜잭션 템플릿데이터베이스/JDBC 2024. 11. 6. 00:15
트랜잭션 매니저 코드트랜잭션 commit(), rollback() 반복 사용의 불편함//트랜잭션 시작TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try { //비즈니스 로직 bizLogic(fromId, toId, money); transactionManager.commit(status); //성공시 커밋 } catch (Exception e) { transactionManager.rollback(status); //실패시 롤백 throw new IllegalStateException(e); } 트..
-
[JDBC] 트랜잭션 매니저데이터베이스/JDBC 2024. 11. 5. 00:40
애플리케이션 구조프레젠테이션 계층> UI 와 관련된 처리 담당> 웹 요청과 응답> 사용자 요청 검증서비스계층> 비즈니스 로직 담당데이터접근계층> 실제 데이터베이스 접근 코드 서비스계층 트랜잭션 문제점 (JDBC)public void func(String param1, String param2, int param3) throws SQLException{ // SQLEXCEPTION 예외 Connection con = dataSource.getConnection(); try{ //1. JDBC 트랜잭션 시작 con.setAutoCommit(false); bizLogic(con, param1, param2, param3); //2. JDB..
-
[JDBC] 트랜잭션데이터베이스/JDBC 2024. 11. 5. 00:39
1. 트랜잭션 ACID2. 트랜잭션 격리 수준3. DB 세션4. 트랜잭션 직접 구현 트랜잭션 ACID원자성 (Atomicity)트랜잭션 내에서 실행한 작업들은 모두 성공하거나 모두 실패일관성 (Consistency)일관성 있는 데이터베이스 상태 유지 (무결성 제약 조건을 항상 만족)격리성 (Isolation)동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않아야함지속성 (Durability)트랜잭션을 성공적으로 끝내면 그결과가 항상 기록되어야함 트랜잭션 격리 수준READ UNCOMMITED (커밋되지 않은 읽기)READ COMMITTED (커밋된 읽기)REPEATABLE READ (반복 가능한 읽기)SERIALIZABLE (직렬화 가능)일반적으로, READ COMMITED(커밋된 읽기)가 기본적으로 ..