1、C3P0是一个开源的JDBC连接池,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。

2、JAR包:C3P0连接池_其他

3、导入配置文件 c3p0-config.xml:

<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.jdbc.Driver</property>        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db5?characterEncoding=UTF-8</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>    </named-config>    <!--配置连接池2,可以配置多个--></c3p0-config>

4、代码实例:

package com.lagou.utils;import com.mchange.v2.c3p0.ComboPooledDataSource;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * @author angang @create 2020-12-22 16:24 */public class C3P0Utils {//1.创建连接池对象 C3P0对DataSource接口的实现类    //使用的配置是 配置文件中的默认配置    //public static ComboPooledDataSource dataSource = new ComboPooledDataSource();    public static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");    //获取连接的方法    public static Connection getConnection() throws SQLException {return dataSource.getConnection();    }//释放资源    public static void close(Connection con, Statement statement){if(con != null && statement != null){try {
                statement.close();                //归还连接                con.close();            } catch (SQLException e) {
                e.printStackTrace();            }
        }

    }public static void close(Connection con, Statement statement, ResultSet resultSet){if(con != null && statement != null && resultSet != null){try {
                resultSet.close();                statement.close();                //归还连接                con.close();            } catch (SQLException e) {
                e.printStackTrace();            }
        }

    }

}

5、常见配置:

C3P0连接池_其他_02