Diz-se ser um bom hábito fechar todos os recursos JDBC após o uso. Mas se eu tiver o código a seguir, é necessário fechar o conjunto de resultados e a instrução?
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = // Retrieve connection
stmt = conn.prepareStatement(// Some SQL);
rs = stmt.executeQuery();
} catch(Exception e) {
// Error Handling
} finally {
try { if (rs != null) rs.close(); } catch (Exception e) {};
try { if (stmt != null) stmt.close(); } catch (Exception e) {};
try { if (conn != null) conn.close(); } catch (Exception e) {};
}
A questão é se o fechamento da conexão faz o trabalho ou se deixa alguns recursos em uso.