0

我有一个 java 应用程序,它可以远程访问在线 MySQL 数据库,它工作正常。

唯一的问题是,几分钟后,与服务器的连接被关闭了,还有什么办法让连接保持活动状态吗?这样我就不必为了执行任务而实例化另一个连接。

任何想法和投入将不胜感激。提前致谢。

4

3 回答 3

3

您需要自动重新连接,尝试编辑您的 JDBC URL:

jdbc:mysql://[主机]:[端口]/[数据库]? 自动重新连接=真

请参阅连接器参考: http ://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

于 2013-04-18T07:01:01.743 回答
3

正如其他答案所指出的,您可以使用autoReconnect连接上的选项来解决眼前的问题。

但是,如果您不使用数据库连接池,我强烈建议您切换到一个。

它们有许多优点:

  • 他们为您检查您的连接 - 这涉及超时、网络问题等
  • 他们控制连接数
  • 您可以在完成每一项工作后简单地“关闭”连接,然后在需要时“重新打开”连接。

如果您自己管理连接,您几乎肯定会最终编写某种形式的连接池——以及为什么要重新发明轮子。

当您实施连接检查以使它们不会过时时,某种连接持有者使您无需每次都重新打开它们,某种异常处理代码您已经准备就绪编写大量已经编写并经过彻底测试的代码。

我使用过dbcpboneCP,它们都非常易于使用和配置,可以为您节省数小时处理 JDBC 连接问题的挫败感。

于 2013-04-18T07:14:51.087 回答
1
jdbc:mysql://[host]:[port]/[database]?autoReconnect=true&user=root&password=passwordIchose
于 2013-05-11T22:16:38.677 回答