2016-08-26 2 views
2

매 Java 클래스는 매번 특정 수의 레코드 (1000으로 간주)로 호출됩니다. 호출 될 때마다 테이블에 1000 개의 레코드를 모두 삽입해야합니다. 이제는 세 번 호출되었다고 가정합니다 (세 개의 트랜잭션에서 DB에 3000 개의 레코드가 삽입되었음을 의미합니다). 이제 세 번째 트랜잭션 삽입 중에 오류가 발생하면 모든 트랜잭션 삽입을 롤백해야합니다. 3 가지 트랜잭션을 모두 단일 트랜잭션으로 만들 가능성이 있습니까 (코드는 주기적으로 1000 개의 레코드를받습니다). 이 시나리오를 달성하도록 안내해주십시오.Java에서 일련의 jdbc 트랜잭션을 롤백하는 방법

+0

세 트랜잭션을 모두 롤백해야하는 경우 세 가지 트랜잭션이 없습니다. 하나의 거래가 있습니다. – Kayaman

+0

"롤백"은 트랜잭션 내부의 DB 기능입니다. 일단 트랜잭션을 커밋하면 롤백을 자동으로 수행 할 방법이 없습니다. 이 기능을 제공 할 수 있도록 프로그램을 설계하는 것은 개발자의 몫입니다 (일반적으로 그다지 간단하지 않습니다). – SJuan76

+0

@ 카야 만 한 번에 3000 개의 모든 레코드를 커밋 할 수 있습니까? note : 나는 주기적으로 1000 개의 레코드를 받게 될 것입니다. –

답변

0

각 트랜잭션 동안 모든 삽입을 추적하고 롤백이 호출되면 함수를 삭제하는 방법이 필요합니다. 트랜잭션이 커밋 된 후에 쉽게 롤백 할 수있는 방법이 없습니다.

+0

3 가지 거래를 모두 단일 거래로 만들 가능성이 있습니까? (그러나 나는 한 번에 1000 개의 레코드를 주기적으로받지 않을 것이다). 그래서 한번에 모든 삽입을 할 수 있습니다. –

+0

아마도 코드 설정 방법에 따라 달라질 수 있습니다. 좋은 생각처럼 보이지 않는 프로그램 끝까지 트랜잭션을 커밋하지 않는 것처럼 들리지만, 질문을 업데이트하여 ur 코드를 추가하려면 더 나은 아이디어를 얻을 수 있습니다. – SJR59