步骤:
1.导入jar包(两个) c3p0-0.9.5.2. jar mchange- commons -java-0.2.12.jar
不要忘了导入数据库驱动jar包,我使用的是mysql-connector-java-8.0.21.jar
2.定义配议文件:
名称:c3p0. properties 或者 c3p0-config.xml
路径:直接将文件放在src目录下
3.创建核心对象数据库连接池对像 ComboPooledDataSource
4.获取连接:getConnection
jar包链接:https://download.csdn.net/download/hdsHDS6/12823091
注意:将jar复制到项目后记得右键点击Add as Library...加入到库中
将c3p0-config.xml复制到src资源文件下,也可自己创建格式内容如下
<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db3?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">root</property>
<!--初始化连接数量-->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="mysql2">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db3?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">root</property>
<!--初始化连接数量-->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">3000</property>
</named-config>
</c3p0-config>
最后使用案列,创建线程池
package datasource.c3p0;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class C3P0Deom1 {
public static void main(String[] args) throws SQLException {
//1.创建数据库连接池对象,使用默认配置
DataSource ds = new ComboPooledDataSource();
//2.获取连接对象,根据配置文件最多10个
for(int i = 0 ; i < 10 ;i++){
Connection conn = ds.getConnection();
System.out.println(conn);
//使用完后,回归线程池
//conn.close();
//...之后的数据库操作
}
}
public static void nameConfig() throws SQLException {
//1.创建数据库连接池对象,使用指定配置
DataSource ds = new ComboPooledDataSource("mysql2");
//2.获取连接对象
for(int i = 0 ; i < 10 ;i++){
Connection conn = ds.getConnection();
System.out.println(conn);
//使用完后,回归线程池
//conn.close();
//...之后的数据库操作
}
}
}