내가 호출 다음 행 : 내가 볼ResultSet.refreshRow()를 호출 할 때 NotUpdatable이 표시되는 이유는 무엇입니까?
Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = statement.executeQuery("select * from user");
resultSet.next();
resultSet.refreshRow();//exception throws here
예외 다음
com.mysql.jdbc.NotUpdatable는 :하지 결과 집합 updatable.This이었다 성명에서 와야 결과 집합 결과 집합 유형이 인 ResultSet.CONCUR_UPDATABLE로 생성 된 쿼리는 하나의 테이블 만 선택해야하며 함수를 사용하지 않고 해당 테이블의 모든 기본 키를 선택해야합니다. 자세한 내용은 JDBC 2.1 API 사양 섹션 5.6을 참조하십시오.이 결과 집합은 결과 집합이 ResultSet.CONCUR_UPDATABLE 인 집합으로 작성되어야하며 쿼리는 하나의 테이블 만 선택해야하며 테이블은 함수를 사용할 수 없습니다. 해당 테이블 에서 모든 기본 키를 선택해야합니다. 자세한 내용은 자세한 내용은 JDBC 2.1 API 사양, 5.6 절을 참조하십시오.
은 refreshRow 방법 (들) 행을 재 취득 JDBC 드라이버에게 명시 적으로 에 응용 프로그램에 대한 방법을 제공합니다 :
refreshRow
메소드의 javadoc을 읽으면 우리가 다음 찾을 수 있기 때문에나는이 예외를 궁금해 데이터베이스에서
따라서 방향을 다음 database --> ResultSet
내가 따라와이 g 이해 :
ResultSet --> database
은 따라서 나는 문제의 원인을 이해하지 않습니다
업데이트 할 수있는 방향 다음 사용할 가능성이있다.
알려 주시기 바랍니다.
성명서 작성시 ResultSet.CONCUR_UPDATABLE을 설정하지 않았습니까? – ControlAltDel
예. 나는 데이터베이스에서 읽기만 원한다! – gstackoverflow
db에서 마지막으로 변경하려고합니다 – gstackoverflow