我在程序中某处出现内存泄漏,并使用一些工具认为这是代码中的位置。那么,此函数以及如何调用存储过程有什么问题吗?
创建该类时,将CustomSQLConn
赋予该类。
private void flagDeleted(ABCDocument mydoc){
try {
ResultSet rs1 = null;
try{
CallableStatement cs1;
cs1 = CustomSQLConn.prepareCall("{ call flagFolderDeleted(?) }");
cs1.setInt(1, mydoc.getId());
cs1.execute();
}catch (Exception e){
System.out.println("Got an exception: " + e.getMessage());
e.printStackTrace();
}finally{
if(rs1 != null) rs1.close();
rs1 = null;
}
}catch (Exception e) {
System.out.println("Got an exception: " + e.getMessage());
e.printStackTrace();
}
} // END flagDeleted
由于该类将其用于其他进程,因此此处也未关闭该连接。
最佳答案
您正在关闭ResultSet
,但没有关闭CallableStatement
。
关于java - 调用存储过程时出现内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5245985/