Должны ли наборы результатов и операторы JDBC закрываться отдельно, хотя соединение после этого закрывается?

Считается хорошей привычкой закрывать все ресурсы JDBC после использования. Но если у меня есть следующий код, нужно ли закрывать Resultset и Statement?

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) {};
}

Вопрос в том, выполняет ли закрытие соединения работу или оставляет некоторые ресурсы в использовании.

244
задан Zeemee 5 June 2015 в 01:12
поделиться