执行完查询之后是否需要显式调用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(); java打印问题 ^_^!一个关于的java程序实施的问题!! int a[]和int []a哪个写法好,理由是什么?? 构造一个存放50万左右数据的hashmap,请问该设置多大的size? 字符串转整数的问题 请看看这样的程序逻辑上是不是有问题?谢谢! 创建可序化对象的问题 怎么将jre放到局域网的服务器上让客户端下载! 菜鸟问题-如何从一个frame调用一个Panel? 很奇怪,我用jb+wls已经成功的发布过entitybean,我重新做一个的时候,deploy一个jar的时候什么反映都没有?? 求教大神们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();