有人能提供关于如何建立JDBC连接池的示例或链接吗?
通过搜索google,我看到了许多不同的方法,这是相当令人困惑的。
最终,我需要返回java.sql.Connection
对象的代码,但我很难获得欢迎的started..any建议。
更新:没有javax.sql
或java.sql
的池连接实现吗?为什么使用这些不是最好的呢?
发布于 2010-05-14 23:56:06
如果你需要一个独立的连接池,我更喜欢C3P0而不是DBCP (我在这篇previous answer中提到过),我只是在重负载下使用DBCP遇到了太多问题。使用C3P0非常简单。从documentation
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("swaldman");
cpds.setPassword("test-password");
// the settings below are optional -- c3p0 can work with defaults
cpds.setMinPoolSize(5);
cpds.setAcquireIncrement(5);
cpds.setMaxPoolSize(20);
// The DataSource cpds is now a fully configured and usable pooled DataSource
但是,如果您在应用程序服务器内部运行,我建议您使用它提供的内置连接池。在这种情况下,您将需要对其进行配置(请参阅应用服务器的文档),并通过JNDI检索DataSource:
DataSource ds = (DataSource) new InitialContext().lookup("jdbc/myDS");
发布于 2015-06-03 23:34:51
它很现代,很快,很简单。我在每个新项目中都使用它。与C3P0相比,我更喜欢它,我不太了解其他池。
发布于 2010-05-14 23:18:35
通常,如果您需要一个连接池,那么您正在编写一个在某些托管环境中运行的应用程序,也就是说,您正在应用程序服务器内部运行。
开箱即用的解决方案将是与其他应用程序服务器设施最好的集成。但是,如果您没有在应用程序服务器内部运行,我建议您使用。它被广泛使用,并提供了大多数应用程序所需的所有基本池化功能。
https://stackoverflow.com/questions/2835090
复制相似问题