【发布时间】:2013-01-06 05:02:36
【问题描述】:
我想使用Apache Commons DBCP 在 Java 应用程序中启用连接池(这里没有容器提供的数据源)。在网络的许多站点中 - 包括 Apache site - 库的使用基于此 sn-p:
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername("scott");
ds.setPassword("tiger");
ds.setUrl(connectURI);
然后你通过 getConnection() 方法获得你的数据库连接。但在其他网站上 - 和 Apache Site also- 数据源实例是通过以下方式创建的:
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory);
ObjectPool objectPool = new GenericObjectPool(poolableConnectionFactory);
PoolingDataSource dataSource = new PoolingDataSource(objectPool);
它们之间有什么区别?我正在使用带有BasicDataSource 的连接池,或者我需要一个PoolingDataSource 的实例来使用连接池? BasicDataSource 是线程安全的(我可以将其用作 Class 属性)还是需要同步其访问?
【问题讨论】:
标签: database-connection apache-commons-dbcp