C3P0数据库连接池连接的两种方式
一. 目录结构

二. 代码
2.1 c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="hello_c3p0">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///test</property>
<property name="user">root</property>
<property name="password">shan5211314..</property>
<property name="acquireIncrement">50</property>
<property name="initialPoolSize">100</property>
<property name="minPoolSize">50</property>
<property name="maxPoolSize">1000</property>
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">2</property>
</named-config>
</c3p0-config>
2.2 JDBUtils
package com.shan3.databaseConnection.utils;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static ComboPooledDataSource cpds = new ComboPooledDataSource("hello_c3p0");
public static Connection getConnection() throws SQLException {
Connection conn = cpds.getConnection();
return conn;
}
public static void closeResource(Connection conn, PreparedStatement ps){
try {
if(ps != null)
ps.close();
} catch (SQLException e){
e.printStackTrace();
}
try {
if(conn != null)
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
public static void closeResource(Connection conn, PreparedStatement ps, ResultSet result){
try {
if(ps != null)
ps.close();
} catch (SQLException e){
e.printStackTrace();
}
try {
if(conn != null)
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
try {
if(result != null)
result.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
3.3 C3P0Test
package com.shan3.databaseConnection;
import org.junit.jupiter.api.Test;
import com.mchange.v2.c3p0.*;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
public class C3P0Test {
@Test
public void testGetConnection() throws Exception {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "com.mysql.jdbc.Driver" );
cpds.setJdbcUrl( "jdbc:mysql://localhost:3306/test" );
cpds.setUser("root");
cpds.setPassword("shan5211314..");
cpds.setInitialPoolSize(10);
Connection conn = cpds.getConnection();
System.out.println(conn);
}
@Test
public void testGetConnection1() throws Exception {
ComboPooledDataSource cpds = new ComboPooledDataSource("hello_c3p0");
Connection conn = cpds.getConnection();
System.out.println(conn);
}
}