执行完查询之后是否需要显式调用PreparedStatement对象和ResultSet对象的close()方法? 本帖最后由 asbeforelong 于 2010-09-06 22:52:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要显示关闭。先从内到外关。ResultSet 先关,再关PreparedStatement ,再关 Connection 帮助文档里面有这两个注释:注:当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列获取下一个结果时,该 Statement 对象将自动关闭 ResultSet 对象。 注:关闭 Statement 对象时,还将同时关闭其当前的 ResultSet 对象(如果有)。 看起来只要调用Statement的close方法就可以了吧。 肯定的,因为要释放资源!这些链接资源不受JVM的控制,如果不显示关闭的,就会浪费系统资源! 不可以只关闭最外层,是ResultSet 先关,再关PreparedStatement ,再关 Connection 只关闭Connection的时候 如果ResultSet 关闭的时候出现了异常,我们就捕获不到了。finally{try{ if (rs!=null)( rs.close();}catch(Exception e){}try{ if (pst!=null)( pst.close();}catch(Exception e){}try{ if (conn!=null)( conn.close();}catch(Exception e){}} 应该显式地关闭,期望由 statement.close 或 connection.close 隐含地关闭的话,会推迟 result.close(),使得 resultset 的并发使用量增加,用户多的时候影响性能。你用这样的试验体验一下:Statement stmt = ...;for(int i = 0; i < 10000; i++){ ResultSet rs = stmt.executeQuery("select 1 from dual");}stmt.close(); 数组作为方法参数的一个问题。 求教大虾,如何用socket向网站发送http的post请求? 初级问题-在线 求一些类型的电子邮件! 通过apache的common-net.jar写的ftp上传,上传后的图片都不能用,请教各位大虾如何解决?老弟跪求了! 那位大虾能提供点开源的画图的源代码或网址!万分感谢! string 问题,救命. 为什么我的appletviewer不能用? 怎样画矩形呀 大神帮助下 求教大神们2个GUI编程中的问题。。。 关于继承在实际应用中的疑问
帮助文档里面有这两个注释:注:当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列获取下一个结果时,该 Statement 对象将自动关闭 ResultSet 对象。 注:关闭 Statement 对象时,还将同时关闭其当前的 ResultSet 对象(如果有)。
看起来只要调用Statement的close方法就可以了吧。
只关闭Connection的时候 如果ResultSet 关闭的时候出现了异常,我们就捕获不到了。finally{
try{
if (rs!=null)(
rs.close();
}catch(Exception e){}
try{
if (pst!=null)(
pst.close();
}catch(Exception e){}
try{
if (conn!=null)(
conn.close();
}catch(Exception e){}
}
ResultSet rs = stmt.executeQuery("select 1 from dual");
}stmt.close();