导入相关包
c3p0的jar包下载
下载.bin.
文件
解压后,将这两个jar包放入自己创建的myjar文件夹内
编写配置文件
配置文件中主要是数据库的连接信息
创建一个文件c3p0-config.xml
,将下面的代码拷贝进去
<?xml version="1.0" standalone="no" ?>
<c3p0-config>
<!--默认配置-->
<default-config>
<!-- initialPoolSize:初始化时获取三个连接,
取值应在minPoolSize与maxPoolSize之间。 -->
<property name="initialPoolSize">3</property>
<!-- maxIdleTime:最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。-->
<property name="maxIdleTime">60</property>
<!-- maxPoolSize:连接池中保留的最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- minPoolSize: 连接池中保留的最小连接数 -->
<property name="minPoolSize">10</property>
</default-config>
<!--配置连接池mysql-->
<named-config name="mysql">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lianxi01?characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">316426</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</named-config>
<!--配置连接池2,可以配置多个-->
</c3p0-config>
jdbcUrl
:在JDBC中,url原本是&分隔,现在需要改成&
使用这一串替换原本的&- jdbcUrl中的
lianxi01
是我的数据库,这里需要换成自己的数据库名 user
与password
:都修改为自己的就可以
将配置文件加入工作内
我的配置文件与工具类C3P0Utils
的层级关系是这样,接下来以这样的层级关系将配置文件导入.
- 在Module名(JDBC_task)上右键点击,创建文件夹resources
- 创建好后,在文件夹上单击右键,将文件夹类型改为Resources Root
- 复制刚刚编写且保存好的配置文件,鼠标左键选中刚刚创建好且修改好类型的文件夹resources,ctrl+V就把配置文件放在这个文件夹了
编写工具类
package utils;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 项目描述: 编写数据库C3P0连接池的工具类代码
*/
public class C3P0Utils {
// 1.创建C3P0核心工具类ComboPooledDataSource()对象
// 无参方式使用的是配置文件中的默认配置
//ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 使用有参方式构造对象,目的是使用自定义配置
public static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");
// 2.提供连接方法
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
// 3.关闭对象
public static void close(Connection connection, Statement statement) throws SQLException {
if(null != connection && null != statement){
statement.close();
connection.close();
}
}
public static void close(Connection connection, Statement statement, ResultSet resultSet) throws SQLException {
if(null != connection && null != statement && null != resultSet){
resultSet.close();
statement.close();
connection.close();
}
}
}