如何在JDBC中建立连接池?

2022-08-31 08:56:10

任何人都可以提供有关如何建立JDBC连接池的示例或链接吗?

通过搜索谷歌,我看到许多不同的方法来做到这一点,这是相当令人困惑的。

最终,我需要代码来返回对象,但我在入门时遇到问题。欢迎任何建议。java.sql.Connection

更新:没有或具有池连接实现?为什么不最好使用这些?javax.sqljava.sql


答案 1

如果你需要一个独立的连接池,我更喜欢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");

答案 2

光中

它是现代的,它是快速的,它是简单的。我将其用于每个新项目。我更喜欢它而不是C3P0,不太了解其他池。


推荐