한 테이블에서 몇 가지 테이블을 수정해야합니다. 그들은 모두 성공해야하거나 모두 실패해야합니다. 한 작업이 실패하면 모두 실패합니다. 나는 다음과 같은 것을 가지고있다 :언제 java.sql.Connection.rollback()을 호출해야합니까?
나는이 과정에서 문제가 발생했을 때 rollback()을 호출해야하는지 궁금하다.
기타 정보 : 연결 풀링을 사용하고 있습니다. 위의 예제에서, 나는 또한 각 PreparedStatement를 finally 문을 사용하여 닫고, 간결하게하기 위해 생략했다.
는
좋아 너무도 업데이트와 함께, 그 CONN를 반영하기 위해 예 (null의 경우도있다) 업데이트 I 여전히 롤백()을 호출 할 필요가 없습니까? 감사합니다 – user291701
맞습니다, 당신은 롤백을 호출 할 필요가 없습니다. 앞의 예제에서'conn'가'try' 전에 초기화되었습니다. –
이것은 사실이 아닙니다. 변경 사항을 롤백하려면 연결에서 롤백을 호출해야합니다. 자동으로 롤백되지는 않습니다. 내 대답을 볼 수 있지만 커밋을 호출하기 전에 예외를 throw하여 쉽게 테스트 할 수 있습니다. –