Я получаю «утечка ресурсов:« rsHP »не закрывается в этом месте» везде я использую rsHP = stmt.executeQuery (запрос);Результат Установить утечку ресурсов, хотя я закрываю RS?
Вот основная схема того, что делает этот метод ...
public static void method(String x, Connection conn){
Statement stmtHP = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rsHP = null;
try{
----ALGORITHM IN HERE------
****This is the general form of this method*****
queryHP = "select * from SOMETABLE where SOMETHING = 'blah'";
rsHP = stmtHP.executeQuery(queryHP);
while(rsHP.next()){
List.add(rsHP.getString("COLNAME"));
}
.
.
repeats for 8 different queries
.
.
queryHP = "select * from SOMEOTHERTABLE where SOMETHINGELSE = 'blah2'";
rsHP = stmtHP.executeQuery(queryHP);
while(rsHP.next()){
List.add(rsHP.getString("NEWCOLNAME"));
}
}catch(Exception e){
System.out.println("Hey dumbo you suck, Exception Found");
rsHP.close();
stmtHP.close();
conn.close();
}finally{
rsHP.close();
stmtHP.close();
// connection gets closed later if no exceptions thrown
}
}// end method
В конце здесь я четко закрывающей все мои вещи. Я смущен относительно того, как у меня утечка памяти, если это невозможно для моего метода прекратить, не закрывая RS вне ошибки.
Я имел броски исключения SQL , я просто пытался быть кратким, у меня есть некоторая внутренняя ошибка if else, которая, по моему мнению, противоречит try catch, поэтому я, вероятно, смогу ее очистить и посмотреть, исправляет ли она проблему. Я думаю, вы правы, добавляя конец до конца попытки, удалив их, наконец, и добавив if's к окончанию. Спасибо за вход! – Cody
@Cody Добро пожаловать! Не стесняйтесь отмечать этот ответ как принято :) –