sourcecode

JDBC 연결 기본 자동 커밋 동작

copyscript 2023. 6. 13. 22:31
반응형

JDBC 연결 기본 자동 커밋 동작

저는 오라클에 연결하기 위해 JDBC와 함께 일하고 있습니다.테스트했습니다.connection.setAutoCommit(false)connection.setAutoCommit(true)결과는 예상대로였습니다.

기본적으로 연결은 다음과 같이 작동합니다.autoCommit(true)[내가 틀렸다면 고쳐줘] 하지만 어떤 기록도 삽입되지 않습니다.connection.commit()호출되었습니다.기본 동작에 대한 조언이 있습니까?

String insert = "INSERT INTO MONITOR (number, name,value) VALUES (?,?,?)";

conn = connection; //connection  details avoided
preparedStmtInsert = conn.prepareStatement(insert);
preparedStmtInsert.execute();

conn.commit();

Oracle JDBC 설명서에서 제공하는 정보:

연결이 생성되면 자동 커밋 모드가 됩니다.즉, 각 개별 SQL 문은 트랜잭션으로 처리되며 실행 직후 자동으로 커밋됩니다.자세한 내용은 SQL 문이 실행될 때가 아니라 완료될 때 커밋되는 것이 기본값입니다. 모든 결과 집합업데이트 횟수가 검색되면 문이 완료됩니다.그러나 거의 모든 경우에 문은 실행된 직후에 완성되고 따라서 커밋됩니다.)

또 다른 것은 - 연결 생성 세부 정보를 생략했으므로, 제가 추측하기로는 - 만약 당신이 일부 프레임워크를 사용하거나 데이터 소스 또는 연결 풀에서 연결을 획득하고 있다면,autocommit뒤집힐 수도 있는off이러한 프레임워크/문서/문서 소스에 의해 - 해결책은 기본 설정을 절대 신뢰하지 않는 것입니다;-)

언급URL : https://stackoverflow.com/questions/11021304/jdbc-connection-default-autocommit-behavior

반응형