最近写了一个连数据库的程序,发现老是内存不够. 最后发现是statement 没有及时关闭,占用了大量资源.
源码如下
public static int executeUpdate(String sql){
Statement stmt=null;
int count=0;
try {
stmt = conn.createStatement();
count = stmt.executeUpdate(sql);
}
catch (SQLException e) {
System.err.format("error: %s\n",sql);
e.printStackTrace();
}
finally{
try {
stmt.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
return count;
}之前没有finally这一块,内存很快被消耗. 后来加上了, 就没问题了.
本文探讨了一段未正确关闭数据库Statement导致的内存泄漏问题,通过加入finally块确保资源释放,有效解决内存消耗过快的问题。
619

被折叠的 条评论
为什么被折叠?



