如何在JDBC中建立连接池?
2022-08-31 08:56:10
任何人都可以提供有关如何建立JDBC连接池的示例或链接吗?
通过搜索谷歌,我看到许多不同的方法来做到这一点,这是相当令人困惑的。
最终,我需要代码来返回对象,但我在入门时遇到问题。欢迎任何建议。java.sql.Connection
更新:没有或具有池连接实现?为什么不最好使用这些?javax.sql
java.sql
任何人都可以提供有关如何建立JDBC连接池的示例或链接吗?
通过搜索谷歌,我看到许多不同的方法来做到这一点,这是相当令人困惑的。
最终,我需要代码来返回对象,但我在入门时遇到问题。欢迎任何建议。java.sql.Connection
更新:没有或具有池连接实现?为什么不最好使用这些?javax.sql
java.sql
如果你需要一个独立的连接池,我更喜欢C3P0而不是DBCP(我在前面的答案中已经提到过),我只是在重负载下遇到了太多的DBCP问题。使用C3P0非常简单。从文档中:
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 ds = (DataSource) new InitialContext().lookup("jdbc/myDS");