当前位置: 首页 > 面试题库 >

DriverManager getConnection的连接超时

琴宾鸿
2023-03-14
问题内容

我正在尝试使用标准JDBC方式连接到数据库

connection = DriverManager.getConnection(url, username, password);

连接上是否有一个最大的超时值,连接的生存期有多长,我可以增加该值吗?我希望万一连接永远打开,这是个好主意。


问题答案:

该值通常是由DB控制的。您无法使用代码对其进行控制。这取决于所使用的数据库服务器。通常最多需要30分钟到一小时。

另一方面,Connection永远保持开放是一个非常糟糕的主意。最佳做法是获取
关闭ConnectionStatementResultSet最短的
可能范围,以避免资源泄漏和潜在的应用程序崩溃的泄漏和超时造成的。

的确,连接数据库是一项昂贵的任务。如果您的应用程序应该运行相对较长的时间并相当频繁地连接数据库,则可以考虑使用连接池来提高连接性能。如果您的应用程序是Web应用程序,那么请看一下appserver的文档,它通常提供了一个具有的连接池功能DataSource。如果它是一个客户端应用程序,则寻找经过多年证明其稳健性的第三方连接池库,例如Apache
Commons
DBCP
(常用,用于很多应用服务器),C3P0(从Hibernate已知)和Proxool(如果需要)
XA连接)。

请记住,使用连接池时,您仍然必须编写适当的JDBC代码,现在要在尽可能短的范围内获取
关闭所有资源。反过来,连接池将担心实际关闭连接或只是将其释放回池以供进一步重用。

您可能会从本文中获得更多的见解,以了解如何正确地执行JDBC基础。

希望这对您有所帮助,并祝您编程愉快。



 类似资料:
  • 问题内容: 我在代码中使用了RMI: 这些是4个.java文件。 接下来,我编译所有这些文件。然后创建一个using 。之后,我使用来在服务器端启动rmi注册表。然后,我开始使用服务器,最后使用客户端。 但是什么也没发生 客户端抛出的异常是 原因是什么,我该如何解决? 在客户端计算机上,这些是以下.class文件,在服务器端 问题答案: 错误消息说明了一切:您的连接超时。这意味着您的请求在某个(默

  • 代码片段如下所示: 如果有人有决议,请帮忙?

  • **dataframe2:从另一个来源获得的键的Dataframe(这些键是上表中ID列的分区键)-此表中不同键的数量约为0.15万** 现在,此代码总是导致“com.datastax.oss.driver.api.core.servererrors.ReadFailureException:在一致性LOCAL_ONE读取查询期间Cassandra失败(需要1个响应,但只有0个副本响应,1个失败)

  • 我正在使用带有PostgreSQL数据库服务器的桌面应用程序。当我连续10到20分钟不使用应用程序时,数据库连接会断开。我正在使用PostgresqlJDBC进行数据库连接。 请帮我在这个数据库连接超时。 谢谢

  • 我正在使用Java套接字创建加密通信终端。我的问题是,当我通过“localhost”或我的计算机局域网地址连接时,程序连接完美,并按预期工作,但当我使用我的公共IP地址连接时,连接被拒绝,我得到 java.net.连接异常:连接超时:连接java.base/java.net.DualStackPlainSocketImpl.connect0(本地方法)在java.base/java.net.Dua

  • 我在vm上运行rabbitMQ服务器。我正在学习rabbitMQ java教程。它在vm上本地运行良好,但当尝试从主机发送时,我遇到了一个异常 以下是我正在使用的发送代码: 我可以ping服务器在192.168.198.100但我不能访问管理UI在192.168.198.100:15672/ 有人能帮我弄清楚这个问题出了什么问题吗?提前感谢。