DBCP 与C3p0 20111118

DBCP

DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:

common-dbcp.jar,

common-pool.jar

,common-collections.jar

由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

操作步骤

1、 赋值jar包及dbconfig.properties文件

2、 修改配置文件

3、 修改DBManager文件

a) 静态初始化块,加载配置文件

b) DataSource ds = 

BasicDataSourceFactory.createDataSource(prop);

c) 修改getConnection()

public static Connection getConnection() throws SQLException{

return ds.getConnection();

}

3、在数据库操作中任然使用DBManagergetConnectionrelease方法即可

C3P0

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有HibernateSpring等。

1、 复制jar文件

c3p0-0.9.2-pre1.jar

mchange-commons-0.2.jar

2、 创建DBManager_c3p0

ds = new ComboPooledDataSource();

ds.setDriverClass("com.mysql.jdbc.Driver");

ds.setJdbcUrl("jdbc:mysql://localhost:3306/test");

ds.setUser("root");

ds.setPassword("admin");

ds.setInitialPoolSize(20);

ds.setMaxPoolSize(40);

ds.setMinPoolSize(10);

1、 测试代码

解决c3p0配置问题

1、 在src目录下创建c3p0-config.xml文件,在c3p0文档中找到配置文件案例代码复制到xml中,格式化代码。

2、 修改xml文件,添加driverClass, jdbcUrl, user, password四个属性如下

<c3p0-config>

<default-config>

<property name="automaticTestTable">con_test</property>

<property name="checkoutTimeout">30000</property>

<property name="idleConnectionTestPeriod">30</property>

<property name="initialPoolSize">10</property>

<property name="maxIdleTime">30</property>

<property name="maxPoolSize">100</property>

<property name="minPoolSize">10</property>

<property name="maxStatements">200</property>

</default-config> 

<named-config name="mysql">

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>

<property name="user">root</property>

<property name="password">admin</property> 

<property name="acquireIncrement">5</property>

<property name="initialPoolSize">10</property>

<property name="minPoolSize">5</property>

<property name="maxPoolSize">30</property> 

</named-config>

</c3p0-config>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值