jdbc C3P0连接池
需要的jar包:
package demo;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0 {
@Test
public void fun1() throws Exception {
// 创建连接池对象
ComboPooledDataSource ds = new ComboPooledDataSource();
// 四大参数
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/db1");
ds.setUser("root");
ds.setPassword("747699");
// 池配置
ds.setAcquireIncrement(5); // 自增数
ds.setInitialPoolSize(20); // 初始容量
ds.setMinPoolSize(2); // 最小连接数
ds.setMaxPoolSize(50); // 最大连接
Connection conn = ds.getConnection(); // 获取连接
System.out.println(conn);
conn.close(); // 归还连接
}
}
配置文件
配置文件必须命名为c3p0-config.xml并且放在src目录下
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driverproperty>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db1property>
<property name="user">rootproperty>
<property name="password">123456property>
<property name="initialPoolSize">10property>
<property name="maxIdleTime">30property>
<property name="maxPoolSize">100property>
<property name="minPoolSize">10property>
default-config>
<named-config name="myApp">
<property name="user">rootproperty>
<property name="password">123456property>
<property name="driverClass">com.mysql.jdbc.Driverproperty>
<property name="jdbcUrl">jdbc:mysql:///usersproperty>
<property name="initialPoolSize">10property>
<property name="maxIdleTime">30property>
<property name="maxPoolSize">100property>
<property name="minPoolSize">10property>
named-config>
c3p0-config>
代码测试:
// 使用配置文件创建池
@Test
public void fun2() throws Exception {
// 创建池
ComboPooledDataSource ds = new ComboPooledDataSource();
// 命名创建池
// 获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
conn.close(); // 归还连接
}
如果在使用配置文件创建池的时候,后面又自定义了配置,那么后面的自定义的配置会覆盖配置文件的配置。
因为在创建的时候就是读取配置文件中的配置,后面自定义的将会覆盖读取的配置。