如果在java代码中没有关闭,JDBC连接会存活多长时间?

时间:2012-04-23 14:32:11

标签: jdbc

如果我在我的java代码中打开一个JDBC连接并忘记关闭它,它会永远保持打开状态吗?或者是否有我可以在某处指定的默认超时值?

2 个答案:

答案 0 :(得分:4)

首先,您确实需要修复代码才能将其关闭。没有任何借口。

关于具体问题,这取决于所使用的DB服务器。这是DB服务器将超时并回收它。有关默认值以及如何更改,请参阅数据库服务器特定管理手册。在例如MySQL的情况下,它是wait_timeout设置,默认为28800秒(8小时)。

答案 1 :(得分:0)

这取决于JDBC驱动程序实现的细节。有些人可能会超时。当连接对象被垃圾收集并调用finalize时,有些人可能会关闭,但是(1)你不知道在停止引用对象后多久它被垃圾收集,以及(2)不能可靠地调用finalize。