0
我越来越'资源泄漏:'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异常,我只是试图简短,我有一些内部如果错误捕捉,我认为与try catch冲突,所以我可能会清理它,看看它是否解决了这个问题。我认为你是正确的做法是在试验结束时添加关闭,最后将它们移除,并将if添加到最后。感谢您的输入! – Cody
@Cody不客气!随意标记此答案为接受:) –