一.首先如果要使用这个连接池,就需要导入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar,
我这里测试使用的是msql数据库 当然也需要导入mysql连接架包mysql-connector-java-5.1.26-bin.jar
下载地址:https://pan.baidu.com/s/1GXBVvLcATClOvZyF6k1z6g
二.我这里的配置文件结构如下

这里的c3p0-0.9.2-pre是主要架包 c3p0-config.xml必须在src目录下 才可以检测到
有三种方式使用c3p0这个jar
首先看一下配置文件c3p0-config.xml中的信息
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- This is default config! -->
<!-- 默认配置 -->
<default-config>
<!-- 初始化时 c3p0-config连接池的初始化连接数 -->
<property name="initialPoolSize">10</property>
<!-- 连接空闲等待时间 超过这个时间 自动断开连接 -->
<property name="maxIdleTime">30</property>
<!-- 连接池最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 连接池最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 最多可以得到多少个statement 也就是说可以创建多少个可以执行sql语句的对象 -->
<property name="maxStatements">200</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 连接url路径 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property>
<!-- 连接用户的用户账户 -->
<property name="user">root</property>
<!-- 连接密码 -->
<property name="password">zhousong</property>
</default-config>
<named-config name="mysql">
<!-- 连接mysql数据库需要的参数 -->
<!-- 驱动类 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 连接url路径 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property>
<!-- 连接用户的用户账户 -->
<property name="user">root</property>
<!-- 连接密码 -->
<property name="password">zhousong</property>
<!-- 初始化连接时 的连接数 -->
<property name="initialPoolSize">10</property>
<!-- 初始化时 c3p0-config连接池的初始化连接数 -->
<property name="initialPoolSize">10</property>
<!-- 连接空闲等待时间 超过这个时间 自动断开连接 -->
<property name="maxIdleTime">30</property>
<!-- 每次增加10 当连接不够时 -->
<property name="acquireIncrement">10</property>
<!-- 连接池最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 连接池最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 最多可以得到多少个statement 也就是说可以创建多少个可以执行sql语句的对象 -->
<property name="maxStatements">200</property>
</named-config>
</c3p0-config>
然后测试三种使用方式
package C3p0Demo;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class Demo1 {
/*
* C3p0的代码配置方式
* 通过代码进行四大参数组件的配置
*
*/
@Test
public void C3p0DemoTest() throws PropertyVetoException, SQLException{
//C3p0类的使用
ComboPooledDataSource dataSource =new ComboPooledDataSource();
/*
* 使用四大参数组件 连接数据库
*/
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mysql1");
dataSource.setUser("root");
dataSource.setPassword("zhousong");
//池配置
dataSource.setInitialPoolSize(10);//初始化连接池时 初始化;连接数为10
dataSource.setAcquireIncrement(5); //设置连接池增量连接数
dataSource.setMaxPoolSize(20); //连接池最大连接数
dataSource.setMinPoolSize(5); //设置连接池最小连接数
Connection connection =dataSource.getConnection();
//使用的是动态代理机制
System.out.println(connection);
connection.close();
}
/*
* 使用默认配置文件 进行连接池子配置
* 默认配置
*/
@Test
public void C3p0DemeTest2() throws SQLException{
ComboPooledDataSource dataSource =new ComboPooledDataSource();
Connection connection =dataSource.getConnection();
System.out.println(connection);
connection.close();
}
/*
* 使用配置文件 进行连接池子配置
* 命令配置方式
*/
@Test
public void C3p0DemeTest3() throws SQLException{
ComboPooledDataSource dataSource =new ComboPooledDataSource("mysql");
Connection connection =dataSource.getConnection();
System.out.println(connection);
connection.close();
}
}
分别都通过 这样就可以使用这个架包了
来源:https://www.cnblogs.com/ad-zhou/p/9104821.html