一、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();
}
}