El controlador JDBC lanza la excepción "ResultSet Closed" en un ResultSet vacío

Tengo un problema en el controlador JDBC para SQLite.

Estoy ejecutando una consulta con la instrucción SELECT.

Si consigo un vacíoResultSet (0 filas) luego veo una excepción "Closed ResultSet cerrado" cuando se llamagetString(1).

Sin mucha experiencia previa en JDBC, mi teoría (que no pude confirmar a través de JavaDocs paraResultSet) es eso

getString(1) NO funciona en un conjunto de resultados vacío (cero filas) (por diseño o debido a un error)ResultSetLa bandera "abierta" está establecida enfalse en cero filas (de nuevo, por diseño o un error)

yo vi estoinforme de error Pero no estoy seguro de si está relacionado.

Mis preguntas son:

¿Es correcta la teoría anterior?¿Es un error? ¿Característica? (y si es así, ¿alguien puede señalar la documentación, por favor?)¿Es específico para JDBC de SQLIte o genérico?ResultSet en todos los controladores JDBC?¿Cuál es la forma correcta de hacer cosas así??

Para el # 4, mi solución fue usarisFirst() llamar justo despuésexecuteQuery() para comprobar si hay filas en el conjunto de resultados. ¿Es este el mejor enfoque de práctica?

(También podría haber seleccionado simplemente un recuento inseguro ya que realmente no necesitaba un conjunto de resultados, simplemente un indicador de cero cero, pero quiero saber qué debo hacer si me interesan los resultados de Select)

¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta