如果我在我的java代码中打开一个JDBC连接并忘记关闭它,它会永远保持打开状态吗?或者是否有我可以在某处指定的默认超时值?
答案 0 :(得分:4)
首先,您确实需要修复代码才能将其关闭。没有任何借口。
关于具体问题,这取决于所使用的DB服务器。这是DB服务器将超时并回收它。有关默认值以及如何更改,请参阅数据库服务器特定管理手册。在例如MySQL的情况下,它是wait_timeout
设置,默认为28800秒(8小时)。
答案 1 :(得分:0)
这取决于JDBC驱动程序实现的细节。有些人可能会超时。当连接对象被垃圾收集并调用finalize时,有些人可能会关闭,但是(1)你不知道在停止引用对象后多久它被垃圾收集,以及(2)不能可靠地调用finalize。