>  기사  >  Java  >  Java 트랜잭션에 대한 개인적인 이해 요약

Java 트랜잭션에 대한 개인적인 이해 요약

巴扎黑
巴扎黑원래의
2017-05-22 23:50:351258검색

데이터베이스 작업의 트랜잭션을 관례적으로 Java 트랜잭션이라고 합니다.

1. Java 트랜잭션이란

일반적인 개념은 트랜잭션이 데이터베이스에만 관련된다는 것입니다.
거래는 ISO/IEC에서 확립한 ACID 원칙을 준수해야 합니다. ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 내구성(Durability)의 약어입니다. 트랜잭션의 원자성은 트랜잭션 실행 중 오류가 발생하면 트랜잭션에 의한 모든 수정 사항이 무효화된다는 것을 의미합니다. 일관성이란 트랜잭션이 실패할 때 트랜잭션의 영향을 받은 모든 데이터를 트랜잭션이 실행되기 전의 상태로 복원해야 함을 의미합니다. 격리란 트랜잭션 실행 중 데이터 수정 사항이 트랜잭션이 커밋되기 전에 다른 트랜잭션에 표시되지 않음을 의미합니다. 지속성은 트랜잭션 실행이 실패할 때 제출된 데이터의 상태가 정확해야 함을 의미합니다.
                                                                                                           > " 지시. 더 간단한 대답은 모든 실행이 성공하거나 취소되어 실행되지 않는다는 것입니다.
트랜잭션의 개념은 데이터베이스에서 나오는데, 자바 트랜잭션이란 무엇인가요? 무슨 연관성이 있나요?
실제로 자바 응용 시스템이 데이터베이스를 운영하고 싶다면 JDBC를 통해 구현한다. 추가, 수정, 삭제는 모두 해당 메소드를 통해 간접적으로 구현되며 이에 따라 트랜잭션 제어도 Java 프로그램 코드로 전달됩니다. 따라서 데이터베이스 작업 트랜잭션을 전통적으로 Java 트랜잭션이라고 합니다.


2. 트랜잭션이 필요한 이유

데이터 보안 운영을 해결하기 위해 트랜잭션이 제안됩니다. 트랜잭션 제어는 실제로 데이터의 안전한 접근을 제어하는 ​​것입니다. 간단한 예는 다음과 같습니다. 예를 들어 은행 이체 업무에서 A 계좌는 자신의 계좌에서 B 계좌로 1,000위안을 이체하려고 합니다. 먼저 A 계좌의 잔액에서 1,000위안을 뺀 다음 B 계좌의 잔액을 빼야 합니다. 1,000원 ​​인상됩니다. 중개망에 문제가 있어 A계좌에서 1,000위안 공제가 종료되고, 망장애로 B가 운영에 실패하는 경우 전체 사업이 실패하게 되며, 해당 사업을 취소하도록 통제해야 한다. A 계좌의 업무를 양도합니다. 이러한 방식으로만 비즈니스의 정확성이 보장될 수 있습니다. 이 작업을 완료하려면 계정 A 자금의 감소와 계정 B 자금의 증가가 하나의 트랜잭션으로 결합되어야 합니다. 작업이 취소되어 데이터 보안이 유지됩니다.

3. Java 트랜잭션 유형


Java 트랜잭션에는 JDBC 트랜잭션, JTA(Java Transaction API) 트랜잭션, 컨테이너 트랜잭션의 세 가지 유형이 있습니다.
1. JDBC 트랜잭션
JDBC 트랜잭션은 Connection 개체에 의해 제어됩니다. JDBC 연결 인터페이스(java.sql.Connection)는 자동 제출과 수동 제출이라는 두 가지 트랜잭션 모드를 제공합니다. java.sql.Connection은 트랜잭션을 제어하기 위해 다음과 같은 메소드를 제공합니다.
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
사용 JDBC 트랜잭션을 구분할 때 여러 SQL 문을 단일 트랜잭션으로 결합할 수 있습니다. JDBC 트랜잭션의 한 가지 단점은 트랜잭션 범위가 하나의 데이터베이스 연결로 제한된다는 것입니다. JDBC 트랜잭션은 여러 데이터베이스에 걸쳐 있을 수 없습니다.

[관련 추천]

1. Java 트랜잭션 관리 및 JDBC 샘플 코드에 대한 자세한 설명

Java 트랜잭션 관리 학습 Hibernate 상세 소개

3. Java 트랜잭션 관리 학습: Spring과 Hibernate 상세 코드 설명

위 내용은 Java 트랜잭션에 대한 개인적인 이해 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.