O driver JDBC lança a exceção “ResultSet Closed” no ResultSet vazio

Eu tenho um problema no driver JDBC para SQLite.

Estou executando uma consulta com a instrução SELECT.

Se eu tiver um vazioResultSet (0 linhas), em seguida, vejo uma exceção "Closed ResultSet" lançada ao chamargetString(1).

Sem muita experiência prévia em JDBC, minha teoria (que eu não pude confirmar via JavaDocs paraResultSet) é aquele

getString(1) não funciona em um conjunto de resultados vazio (linha zero) (por design ou devido a um bug)ResultSetA bandeira "aberta" está definida parafalse em linhas zero (mais uma vez, por design ou um bug)

Eu vi issorelatório de erro mas não tenho certeza se está relacionado.

Meus qeustions são:

A teoria acima está correta?Isso é um bug? Característica? (e em caso afirmativo, alguém pode apontar para documentação, por favor?)É específico para o JDBC do SQLIte ou para o genéricoResultSet em todos os drivers JDBC?Qual é a maneira correta de fazer coisas assim??

Para o # 4, minha solução foi usarisFirst() ligar logo apósexecuteQuery() para verificar se há linhas no conjunto de resultados. Esta é a abordagem de melhores práticas?

(Eu também poderia ter simplesmente selecionado uma contagem insetad desde que eu realmente não precisei de um conjunto de resultados, meramente zero-diferente de zero, mas eu quero saber o correto a fazer se eu me importasse com os resultados do select)

Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion