最近写了一个连数据库的程序,发现老是内存不够. 最后发现是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这一块,内存很快被消耗. 后来加上了, 就没问题了.