java - 独立应用程序的数据源 - 没有应用程序服务器

Posted

技术标签:

【中文标题】java - 独立应用程序的数据源 - 没有应用程序服务器【英文标题】:java - DataSource for standalone application - no application server 【发布时间】:2013-03-13 09:04:58 【问题描述】:

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

这个page 建议我应该使用DriverManager 来创建连接。但是this 页面表明从 DriverManager 创建的连接不能被池化。

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

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

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

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

【问题讨论】:

查看 C3P0 或 BoneCP 的第 3 方连接池,无论您使用的是什么数据库。 感谢您的建议。我会记住这些以备将来使用 A ConnectionPoolDataSource 不是连接池,它可以由提供池的“普通”DataSource使用 【参考方案1】:
    我建议使用像DBPool 这样的库。由于开发人员已经解决了这些问题,因此您可以省去很多麻烦。 为确保正确清理连接池,请阅读 documentation 关于 JVM 关闭挂钩的内容。

【讨论】:

感谢您的建议。我会记住这些以备将来使用【参考方案2】:

看看 Apache DBCP 和 DBUtils

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

DBUtils 将使您的 jdbc 更轻松。

正如提到的DBPool 也是其中之一,有BoneCP 和大量的池工具。

看一些示例:

Connection Pooling using Apache common DBCP And DBUtils Using Apache Commons DBUtils and DBCP。

【讨论】:

【参考方案3】:

查看Apache Cayenne,在文档中了解DataSource 和faq about connection pools

编辑:

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

【讨论】:

以上是关于java - 独立应用程序的数据源 - 没有应用程序服务器的主要内容,如果未能解决你的问题,请参考以下文章

Instrumentation接口详解

没有浏览器的 SAML 和 Java 独立应用程序?

Java中jsp和Servlet的区别

大数据技术与应用专业 课 程 标 准

如何在独立的 Java 应用程序中汇集 JMS 连接?

20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结