10.30.07
使用JDBC后记得关闭并释放数据库连接资源噢:)
标签:Java, JDBC, JobTong, 内存溢出, 数据库连接, 释放资源前几天做Jobtong的地点规范化工作,发现运行程序后一段时间居然出现 out of memory ! 这让我惊诧不已,1.5G的内存,跑这样的一个小程序居然就内存溢出了?于是随即check了一下代码,发现是写程序的时候图方便,直接建立了一个conn之后就一直使用,没有任何释放过程,Statement使用完之后也没有释放资源。这样当数据查询一多之后,内存需求不断增加,原来用完的资源又没有释放,结果就溢出了。
从网上找了一段代码,供大家参考:
- Connection conn = null;
- ResultSet rs = null;
- PreparedStatement pss = null;
- try
- {
- conn = dataSource.getConnection(USERID,PASSWORD);
- pss = conn.prepareStatement("SELECT SAVESERIALZEDDATA
- FROM SESSION.PINGSESSION3DATA WHERE SESSIONKEY = ?");
- pss.setString(1,sessionKey);
- rs = pss.executeQuery();
- pss.close();
- conn.close();
- }
- catch (Throwable t)
- {
- // Insert Appropriate Error Handling Here
- }
- finally
- {
- // The finally clause is always executed - even in error
- // conditions PreparedStatements and Connections will always be closed
- try
- {
- if (pss != null)
- pss.close();
- }
- catch(Exception e) {}
- try
- {
- if (conn != null)
- conn.close();
- }
- catch (Exception e){}
- }
- }