首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接池中的数据库连接

连接池中的数据库连接
EN

Stack Overflow用户
提问于 2014-03-06 20:49:34
回答 2查看 94关注 0票数 0

对于类似于此的代码,

代码语言:javascript
复制
try{
Connection con =....
Statement stmt = ....
ResultSet set = ...
}
catch(Exception e){
...
}
finally {
con.close();
}

假设连接转到一个连接池:

当调用con.close()时,它会转到连接池并保持活动状态。在某一时刻,这些连接会关闭,对吧?在这种情况下,我们是否需要关闭结果集和stmt对象,因为连接最终会关闭?

此外,是否会出现仍然使用stmt/result set对象并导致连接池中的连接未关闭的情况?

EN

回答 2

Stack Overflow用户

发布于 2014-03-06 21:00:24

建议在不再需要的时候尽快释放资源。

最简单的方法是使用新的try-with-resources特性(JavaSE7)。

票数 1
EN

Stack Overflow用户

发布于 2014-03-06 21:08:15

当您使用连接池时,Connection.close()调用将把连接放回到池中。当您调用Connection.close()时,Statement对象将被移除。但是,AFAIK,您必须关闭ResultSet对象以显式地将其从服务器中清除。这是一个很好的方法,总是显式地关闭ResultSetStatement,而不是依赖于Connection.close().Adding,如果你选择Spring JDBC,它将负责管理JDBC资源。您不必担心关闭连接、语句和结果集。此外,从Statement API -当一个Statement对象被关闭时,它的当前ResultSet对象(如果存在的话)也被关闭。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22225074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档