3

我想从独立应用程序连接到 MySQL 数据库。没有应用程序/Web 服务器。

页面建议我应该使用 DriverManager 创建连接。但是,页面建议从 DriverManager 创建的连接不能被池化。

然而,连接池对我来说是必须的,因为应用程序使用各种线程同时写入数据库,因此关闭/重新创建连接并不是最佳的。

  1. 为此,我应该使用哪个 DataSource 实现?我查看了MysqlConnectionPoolDataSource但我不确定它是否真的实现了连接池。我还查看了 Tomcat数据源,我确信它实现了一个连接池,但我不确定它是否可以在 Tomcat 之外使用。

  2. 当我关闭独立应用程序时,我应该怎么做才能正确释放连接/池?

编辑:看起来 Tomcat 数据源可以从独立应用程序中使用,所以我将使用它。它还有一个 close 方法,我认为它会释放连接。

4

3 回答 3

1
  1. 我建议使用像DBPool这样的库。由于开发人员已经处理好它们,因此您会感到很头疼。
  2. 要确保正确清理连接池,请阅读有关 JVM 关闭挂钩的文档。
于 2013-03-23T15:32:22.740 回答
1

看看 Apache DBCP 和 DBUtils

DBCP将为您提供连接池等功能。

DBUtils将使 jdbc 更容易为您服务。

如前所述, DBPool也是其中之一,那里有BoneCP和大量池化工具。

看一些样本:

于 2013-03-23T17:15:27.397 回答
1

看看Apache Cayenne,在文档中阅读有关DataSource有关连接池的常见问题解答

编辑:

作为奖励,您可以获得建模器(数据库的图形工具)和与 Eclipse 的轻松集成。

于 2013-03-23T17:34:46.390 回答