1

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

4

2 回答 2

4

首先,您确实需要修复代码以关闭它。没有理由。

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

于 2012-04-23T14:35:15.447 回答
0

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

于 2012-04-24T21:42:44.797 回答