Почему я вижу NotUpdatable, когда я вызываю ResultSet.refreshRow ()?
Когда я вызываю следующие строки:
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: набор результатов не обновляется. Этот набор результатов должен исходить из оператора, созданного с типом набора результатов ResultSet.CONCUR_UPDATABLE, запрос должен выбирать только одну таблицу, не может использовать функции и должен выбирать все первичные ключи из этой таблицы. Подробнее см. В спецификации API JDBC 2.1, раздел 5.6. Этот результирующий набор должен исходить из оператора, созданного с типом результирующего набора ResultSet.CONCUR_UPDATABLE, запрос должен выбирать только одну таблицу, не может использовать функции и должен выбирать все первичные ключи из этой таблицы. См. Спецификацию API JDBC 2.1, раздел 5.6 для более подробной информации.
Я задавался вопросом это исключение, потому что если читатьrefreshRow
Методом Javadoc мы можем найти следующее:
Метод refreshRow позволяет приложению явно указывать драйверу JDBC повторно получать строку (и) из базы данных.
Таким образом, следующее направление:database --> ResultSet
У меня есть следующее понимание:
обновляемым является возможность использовать следующее направление:
ResultSet --> database
Таким образом, я не понимаю причину проблемы.
просьба уточнить.