【问题标题】:Can I keep one jdbc connection for the whole time [duplicate]我可以一直保持一个jdbc连接吗[重复]
【发布时间】:2018-07-01 23:32:57
【问题描述】:

我的 Java 应用程序有很多查询(约 1000 个查询/每个按钮)。我可以在我的应用程序启动时打开 JDBC 连接并保留它,而不是每次按下按钮时打开连接并在 1k 次查询后关闭它吗?我知道这是可能的,但会更好还是没有?它会以某种方式丢失吗?我使用免费的 mysql 托管,这就是为什么每次打开/关闭一个新的都需要很长时间。

【问题讨论】:

  • 您可能会在stackoverflow.com/q/7280825/924 中找到一些有用的信息,一般建议似乎是使用连接池而不是单个连接。
  • “它会以某种方式丢失吗?” 是的。如果服务器重新启动。如果您失去连接。如果你有一段时间不使用它,服务器可能会超时并丢弃它。
  • 添加到@BrandonHaugen 评论,您可以将最大空闲/活动连接设置为 1 的池。这样您将拥有两全其美。
  • 在这种情况下是否可以使用数据库上的程序来代替?您可以使用查询调用该函数,并且您的部分逻辑在 DB 上执行,效率更高。

标签: java jdbc mysqlconnection


【解决方案1】:

没有。它可以随时被服务器关闭,通常是在空闲超时时。您应该为每个事务获得一个新连接,并且应该通过使用 Apache DBCP 之类的连接池来减轻其不良影响。

【讨论】:

  • @HovercraftFullOfEels 这在我身上经常发生。
  • 我有时也会遇到这种情况。通常我会删除答案并发表评论,或者将答案设为社区 wiki
  • 有趣的是,这也是我的赞成票,因为它比 Luis 的答案要好得多
  • @HovercraftFullOfEels 我刚刚阅读了元帖子,其中表达的许多态度在我看来似乎完全奇怪。关于有足够声誉的人是否真的需要玩这个系统的问题是唯一明智的事情......
猜你喜欢
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2011-06-02
相关资源
最近更新 更多