1. 자바 트랜잭션이란 무엇입니까?
일반적인 믿음은 트랜잭션이 데이터베이스에만 관련되어 있다는 것입니다.
거래는 ISO/IEC가 확립한 ACID 원칙을 준수해야 합니다. ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 내구성(Durability)의 약어입니다. 트랜잭션의 원자성은 트랜잭션 실행 중 오류가 발생하면 트랜잭션에 의한 모든 수정 사항이 무효화된다는 것을 의미합니다. 일관성이란 트랜잭션이 실패할 때 트랜잭션의 영향을 받은 모든 데이터를 트랜잭션이 실행되기 전의 상태로 복원해야 함을 의미합니다. 격리란 트랜잭션 실행 중 데이터 수정 사항이 트랜잭션이 커밋되기 전에 다른 트랜잭션에 표시되지 않음을 의미합니다. 지속성은 트랜잭션 실행이 실패할 때 제출된 데이터의 상태가 정확해야 함을 의미합니다.
일반적인 이해는 트랜잭션이 원자적 연산 단위의 집합이라는 것입니다. 데이터베이스 관점에서 보면 이는 모두 SQL 명령의 집합입니다. 어떤 이유로든 명령 중 하나에 오류가 발생하면 모두 성공적으로 실행됩니다. 이전에 실행된 명령은 취소됩니다. 더 간단한 대답은 모든 실행이 성공하거나 취소되어 실행되지 않는다는 것입니다.
트랜잭션의 개념은 데이터베이스에서 비롯되므로 Java 트랜잭션이란 무엇입니까? 무슨 연관성이 있나요?
실제로 자바 응용 시스템이 데이터베이스를 운영하고자 한다면 JDBC를 통해 구현된다. 추가, 수정, 삭제는 모두 해당 메소드를 통해 간접적으로 구현되며 이에 따라 트랜잭션 제어도 Java 프로그램 코드로 전달됩니다. 따라서 데이터베이스 작업 트랜잭션을 전통적으로 Java 트랜잭션이라고 합니다.
2. 거래가 필요한 이유
트랜잭션은 데이터 보안 작업을 해결하기 위해 제안됩니다. 트랜잭션 제어는 실제로 데이터의 안전한 액세스를 제어하는 것입니다. 간단한 예는 다음과 같습니다. 예를 들어 은행 이체 업무에서 A 계좌는 자신의 계좌에서 B 계좌로 1,000위안을 이체하려고 합니다. 먼저 A 계좌의 잔액에서 1,000위안을 뺀 다음 B 계좌의 잔액을 빼야 합니다. 1,000원 인상됩니다. 중개망에 문제가 있어 A계좌에서 1,000위안 공제가 종료되고, 망장애로 B의 운영이 실패하게 되면 전체 사업이 실패하게 되어 이체취소를 요구하도록 통제가 이루어져야 한다. A 계좌의 사업. 이를 통해 비즈니스의 정확성을 보장할 수 있습니다. 이 작업을 완료하려면 계정 A 자금의 감소와 계정 B 자금의 증가가 하나의 트랜잭션으로 결합되어야 합니다. 따라서 데이터의 보안을 유지합니다.
3. 자바 트랜잭션의 종류
Java 트랜잭션에는 JDBC 트랜잭션, JTA(Java Transaction API) 트랜잭션, 컨테이너 트랜잭션의 세 가지 유형이 있습니다.
1. JDBC 트랜잭션
JDBC 트랜잭션은 연결 개체를 사용하여 제어됩니다. JDBC 연결 인터페이스(java.sql.Connection)는 자동 제출과 수동 제출이라는 두 가지 트랜잭션 모드를 제공합니다. java.sql.Connection은 트랜잭션을 제어하기 위해 다음과 같은 메소드를 제공합니다.
공개 무효 setAutoCommit(부울)
공개 부울 getAutoCommit()
공개 무효 커밋()
공개 무효 롤백()
JDBC 트랜잭션 경계 설정을 사용하면 여러 SQL 문을 단일 트랜잭션으로 결합할 수 있습니다. JDBC 트랜잭션의 한 가지 단점은 트랜잭션 범위가 하나의 데이터베이스 연결로 제한된다는 것입니다. JDBC 트랜잭션은 여러 데이터베이스에 걸쳐 있을 수 없습니다.