【发布时间】:2014-01-17 11:15:44
【问题描述】:
我无法理解如何在其他类中获得连接(我使用 DBCP 使用连接池)
MyServlet //不是完整的代码
class MyServlet extends HttpServlet {
public Datasource getDatasource(){
Class.forName(driver).newInstance();
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectUri, username, password);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, new GenericObjectPool(null), null, "SELECT null", false, true);
connectionPool = new GenericObjectPool(poolableConnectionFactory);
connectionPool.setMaxActive(10);
connectionPool.setMaxIdle(4);
return new PoolingDataSource(connectionPool);
}
现在我在 MyServlet 中有类似方法 getConnection 的东西
public static Connection getConnection () {
}
A) 如何在 getConnection() 静态方法中使用数据源?我不想将 getDatasource() 作为静态方法然后使用,因为当我们使用池机制时我觉得使用静态很危险
B) 请告诉我一种最终获得静态 getConnection() 并完美满足池化机制的方法..
【问题讨论】:
标签: java apache jakarta-ee connection-pooling apache-commons-dbcp