一、Maven


<dependency>
   <groupId>com.mchange</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.5.5</version>
</dependency>


二、Java测试代码:


import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;

class TestC3p0 {

   // 数据库驱动名称
   final static String driver = "com.mysql.cj.jdbc.Driver";
   // 数据库连接地址
   final static String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT";
   // 数据库用户名
   final static String user = "test";
   // 数据库密码
   final static String passwd = "1";
   // 连接池初始化大小
   final static int initialSize = 5;
   // 连接池最小空闲
   final static int minPoolSize = 10;
   // 连接池最大连接数量
   final static int maxPoolSize = 50;
   // 最小逐出时间,100秒
   final static int maxIdleTime = 100000;
   // 连接失败重试次数
   final static int retryAttempts = 10;
   // 当连接池连接耗尽时获取连接数
   final static int acquireIncrement = 5;

   // c3p0数据源
   static ComboPooledDataSource c3p0DataSource = null;

   @BeforeAll
   static void init() throws PropertyVetoException {
      c3p0DataSource = new ComboPooledDataSource();
      c3p0DataSource.setDriverClass(driver);
      c3p0DataSource.setJdbcUrl(jdbcUrl);
      c3p0DataSource.setUser(user);
      c3p0DataSource.setPassword(passwd);
      c3p0DataSource.setInitialPoolSize(initialSize);
      c3p0DataSource.setMinPoolSize(minPoolSize);
      c3p0DataSource.setMaxPoolSize(maxPoolSize);
      c3p0DataSource.setMaxIdleTime(maxIdleTime);
      c3p0DataSource.setAcquireRetryAttempts(retryAttempts);
      c3p0DataSource.setAcquireIncrement(acquireIncrement);
      c3p0DataSource.setTestConnectionOnCheckin(false);
      c3p0DataSource.setTestConnectionOnCheckout(false);
   }

   @Test
   void test_Insert() throws SQLException {
      Connection connection = c3p0DataSource.getConnection();
      PreparedStatement stmt = connection.prepareStatement("INSERT INTO sys_user(username,password) VALUES(?,?)");
      stmt.setString(1, "tttttt");
      stmt.setString(2, "123456");
      stmt.execute();
   }
}