Cerrar ResultSet
Hola!
Tengo una función que me cierra un ResultSet y un Statement (rs.close(); y st.close();), para asegurarme de liberar los recursos de una conexión a base de datos. El problema es que no se como asegurarme antes de cerrar esos objetos de que NO están ya cerrados. He probado comprobando si estos objetos son null, pero aunque ya estén cerrados los objetos no son nulos. Buscaba algo del estilo de isClosed(), pero no he visto nada.
¿Alguién sabe como asegurarse de que un ResultSet o un Statement están o no cerrados?
Saludos
Tengo una función que me cierra un ResultSet y un Statement (rs.close(); y st.close();), para asegurarme de liberar los recursos de una conexión a base de datos. El problema es que no se como asegurarme antes de cerrar esos objetos de que NO están ya cerrados. He probado comprobando si estos objetos son null, pero aunque ya estén cerrados los objetos no son nulos. Buscaba algo del estilo de isClosed(), pero no he visto nada.
¿Alguién sabe como asegurarse de que un ResultSet o un Statement están o no cerrados?
Saludos
Una cosa que debes tener en cuenta es que los ResultSet se pueden cerrar antes de que tu creas.
Por ejemplo observa:
ResultSet rs1=stament.executeQuery(query1);
if(rs1.next())
String x=rs1.getString(1); //rs1 aun esta abierto
ResultSet rs2=statement.executeQuery(query2);
if(rs2.next())
String y=rs2.getString(1); //rs2 esta abierto pero rs1 ya se cerro por haber utilizado el mismo objeto statement de tal forma que:
int entero=rs1.getInt(2); //lanzara una SQLException, pues rs1 ya está cerrado.
Por ejemplo observa:
ResultSet rs1=stament.executeQuery(query1);
if(rs1.next())
String x=rs1.getString(1); //rs1 aun esta abierto
ResultSet rs2=statement.executeQuery(query2);
if(rs2.next())
String y=rs2.getString(1); //rs2 esta abierto pero rs1 ya se cerro por haber utilizado el mismo objeto statement de tal forma que:
int entero=rs1.getInt(2); //lanzara una SQLException, pues rs1 ya está cerrado.
De la forma que lo esta haciendo asegura que si los esta cerrando, una forma 100% segura seria ingresando estas instrucciones en el finally.