Драйвер JDBC генерирует исключение «ResultSet Closed» для пустого ResultSet
У меня проблема в драйвере JDBC для SQLite.
Я выполняю запрос с оператором SELECT.
Если я получу пустойResultSet
(0 строк), затем я вижу исключение "Закрытый ResultSet", вызываемое при вызовеgetString(1)
.
Без большого опыта JDBC, моя теория (которую я не смог подтвердить с помощью JavaDocs дляResultSet
) в том, что
getString(1)
НЕ работает с пустым (нулевым) набором результатов (по замыслу или из-за ошибки)ResultSet
'open' флаг установлен вfalse
на нулевых строках (опять же по замыслу или по ошибке)я видел этосообщение об ошибке но я не уверен, если это связано.
Мои вопросы:
Верна ли теория выше?Это ошибка? Характерная черта? (и если да, может кто-нибудь указать на документацию, пожалуйста?)Это специфично для JDBC SQLIte или для общегоResultSet
во всех драйверах JDBC?Как правильно делать такие вещи??Для # 4 моим решением было использоватьisFirst()
позвоните сразу послеexecuteQuery()
проверить, есть ли какие-либо строки в наборе результатов. Это лучший подход?
(Я мог бы также просто выбрать счетчик, поскольку мне действительно не нужен набор результатов, просто флаг с ненулевым ненулевым значением, но я хочу знать, что нужно делать, если мне не безразличны результаты select)
Спасибо!