需要的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.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db1</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 池配置 -->
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</default-config>
<!-- 命名配置,在创建c3p0对象的时候在构造器中传入name,例如下面的myApp -->
<named-config name="myApp">
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///users</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</named-config>
</c3p0-config>
代码测试:
// 使用配置文件创建池
@Test
public void fun2() throws Exception {
// 创建池
ComboPooledDataSource ds = new ComboPooledDataSource();
// 命名创建池
// 获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
conn.close(); // 归还连接
}
如果在使用配置文件创建池的时候,后面又自定义了配置,那么后面的自定义的配置会覆盖配置文件的配置。
因为在创建的时候就是读取配置文件中的配置,后面自定义的将会覆盖读取的配置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)