package util;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import java.sql.Connection;
/**
* @author wwkjk
* @date 2021-10-23 15:22:09
* @Description 测试C3P0数据库连接池的使用
**/
public class TestC3P0Connection {
/**
* 创建一个新的C3P0数据库连接池
* 需要声明在获取connection连接的方法外,否则在每次获取数据库连接时都会新建一个连接池。
* 读取c3p0-config.xml文件中的配置信息
* <named-config name="C3P0XML">中的name参数即为ComboPooledDataSource中的参数
*/
private static ComboPooledDataSource cpds = new ComboPooledDataSource("C3P0XML");
/**
* @param
* @return void
* @author wwkjk
* @date 2021-10-23 15:20:01
* @Description 获取C3P0数据库数据库连接池,方式二
**/
public Connection getConnection() throws Exception {
Connection con = cpds.getConnection();
return con;
}
@Test
public void TestGetConnection() throws Exception {
Connection con = getConnection();
System.out.println(con);
}
}
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<named-config name="C3P0XML">
<!-- 提供获取连接的四个基本信息 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 进行数据库连接池管理的基本信息 -->
<!-- 当数据库连接池中的连接数不够时,C3P0一次性向数据库服务器申请的连接数 -->
<property name="acquireIncrement">5</property>
<!-- C3P0数据库连接池中初始化时的连接数 -->
<property name="initialPoolSize">10</property>
<!-- C3P0数据库连接池维护的最少连接数 -->
<property name="minPoolSize">10</property>
<!-- C3P0数据库连接池维护的最多连接数 -->
<property name="maxPoolSize">100</property>
<!-- C3P0数据库连接池最多维护的Statement的个数 -->
<property name="maxStatements">50</property>
<!-- 每个连接中可以最多使用的Statement的个数 -->
<property name="maxStatementsPerConnection">2</property>
</named-config>
</c3p0-config>
|