导入相关包

c3p0的jar包下载
image.png
下载.bin.文件
解压后,将这两个jar包放入自己创建的myjar文件夹内
image.png

编写配置文件

配置文件中主要是数据库的连接信息
创建一个文件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&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;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原本是&分隔,现在需要改成&amp;使用这一串替换原本的&
  • jdbcUrl中的lianxi01是我的数据库,这里需要换成自己的数据库名
  • userpassword:都修改为自己的就可以

将配置文件加入工作内

image.png
我的配置文件与工具类C3P0Utils的层级关系是这样,接下来以这样的层级关系将配置文件导入.

  1. 在Module名(JDBC_task)上右键点击,创建文件夹resources

image.png

  1. 创建好后,在文件夹上单击右键,将文件夹类型改为Resources Root
    image.png
  2. 复制刚刚编写且保存好的配置文件,鼠标左键选中刚刚创建好且修改好类型的文件夹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();
        }
    }

}

chain_xx_wdm
64 声望2 粉丝

1.领养代替买卖