一尘不染

Java 如何在JDBC中建立连接池?

java

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

从搜索谷歌,我看到这样做的许多不同方式,这相当令人困惑。

最终,我需要代码来返回一个java.sql.Connection对象,但是我在入门时遇到了麻烦。欢迎任何建议。

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


阅读 431

收藏
2020-02-27

共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");
2020-02-27