DriverManager getConnection的连接超时
我正在尝试使用标准JDBC方式连接到数据库
connection = DriverManager.getConnection(url, username, password);
连接上是否有一个最大的超时值,连接的生存期有多长,我可以增加该值吗?我希望万一连接永远打开,这是个好主意。
回答:
该值通常是由DB控制的。您无法使用代码对其进行控制。这取决于所使用的数据库服务器。通常最多需要30分钟到一小时。
另一方面,Connection
永远保持开放是一个非常糟糕的主意。最佳做法是获取
关闭Connection
,Statement
并ResultSet
在
可能范围,以避免资源泄漏和潜在的应用程序崩溃的泄漏和超时造成的。
的确,连接数据库是一项昂贵的任务。如果您的应用程序应该运行相对较长的时间并相当频繁地连接数据库,则可以考虑使用连接池来提高连接性能。如果您的应用程序是Web应用程序,那么请看一下appserver的文档,它通常提供了一个具有的连接池功能DataSource
。如果它是一个客户端应用程序,则寻找经过多年证明其稳健性的第三方连接池库,例如Apache
Commons
DBCP(常用,用于很多应用服务器),C3P0(从Hibernate已知)和Proxool(如果需要)
XA连接)。
请记住,使用连接池时,您仍然必须编写适当的JDBC代码,现在要在尽可能短的范围内获取
关闭所有资源。反过来,连接池将担心实际关闭连接或只是将其释放回池以供进一步重用。
您可能会从本文中获得更多的见解,以了解如何正确地执行JDBC基础。
希望这对您有所帮助,并祝您编程愉快。
以上是 DriverManager getConnection的连接超时 的全部内容, 来源链接: utcz.com/qa/432470.html