1、C3P0是一个开源的JDBC连接池,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。
2、JAR包:
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、常见配置: