Нужно ли закрывать ResultSet и PreparedStatement в течение одного db.getConnection()? Для примера ниже:Необходимо закрыть PreparedStatement перед подготовкой другого заявления
Connection conn = db.getConnection();
PreparedStatement pstmt = conn.prepareStatement(firstsql);
ResultSet r = pstmt.executeQuery();
// do something with the ResultSet
r.close();
pstmt.close(); // do I need close the r and pstmt here?
PreparedStatement pstmt = conn.prepareStatement(secondsql);
ResultSet r = pstmt.executeQuery();
// do something with the ResultSet again
r.close();
pstmt.close();
conn.close();
return null;
Нужны ли коды строк 5 и строки 6?
Либо вы не ответили на вопрос, либо вы ответили неправильно. – EJP
@EJP Что не так: «Каждый ресурс должен быть закрыт после использования»? Он не открывает несколько утверждений, он использует одну и ту же переменную. – Tunaki
Вопрос в том, «нужно ли закрыть подготовленное заявление перед тем, как открыть другое», а ответ - нет. Его код не компилируется, но если бы он это сделал, он действительно открыл бы несколько операторов, и он также имел бы утечку ресурсов. – EJP