좀 자바 코드는 MySQL 데이터베이스에 연결하기 위해 JDBC를 사용하여있어, 다음 코드는 모두 같은 연결을 사용하여, 다음 하나의 업데이 트를 일부 읽기 작업을 수행합니다. 예외가있는 경우 connection.rollback()
이 호출됩니다. 예외가 없으면 connection.commit()
이 호출됩니다. 이 단계에서는 테스트를 실행할 때마다 연결이 새로 생성됩니다 (즉, 풀에서 생성되지는 않음). 내 코드는 하나의 연결 만 생성하며 테스트를 통해 사용됩니다.MySQL의 JDBC는 실패 롤백
사용되는 접속은 접속 인스턴스가 생성 된 직후라고 connection.setAutoCommit(false)
갖는다. 이 예외이며 connection.rollback()
가 호출 될 때 어떤 이유
디버깅을 통해, 내가
connection.setAutoCommit(false)
를 호출 한 후, 다음을 확인했다,connection.getAutoCommit()
예상대로false
의 값을 반환합니다. 또한"Select @@session.autocommit"
은 자동 커밋이 예상대로 해제되었음을 나타내는0
의 값을 반환합니다.connection.rollback()
를 호출하는직전에, 같은 검사가 자동 예상대로 꺼져 커밋을 보여준다.
connection.commit()
은 분명히 호출되지 않고connection.rollback()
이 분명히 호출되고 있습니다.
는 또한 명시 적으로 문 "rollback;"
를 실행 시도했지만 내 문제가 해결되지 않습니다. 또한 연결을 생성 한 후 명시 적으로 문을 실행하는 시도했습니다 "Set AUTOCOMMIT = 0;"
.
모든 테이블은 InnoDB의 스토리지 엔진을 사용합니다. SQL Workbench를 통해 자동 커밋, 롤백 및 커밋이 예상대로 작동합니다.
나는 MySQL의 버전 '5.0.91 - 커뮤니티 - NT'를 사용하고 있습니다. MySQL jdbc 드라이버 버전은 5.1.19입니다. 내 업데이트가 호출되지 커밋 꺼져 자동 위탁하더라도 최선을 다하고지고, 롤백이 명시 적으로 호출되는 이유에 어떤 제안을 누구나 가지고 있습니다
자바 5를 사용하고 있는데?
건배.
시도한 코드를 게시하십시오. – sunleo
코드를주세요 !!!!! – Konza