需要导入的包如图所示:
并配置c3p0-config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!--配置连接池oracle -->
<!-- oracle配置 -->
<named-config name="oracle">
<!-- 加载驱动 -->
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<!-- 配置数据库连接 -->
<property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl
</property>
<!--数据库用户名 -->
<property name="user">scott</property>
<!-- 密码 -->
<property name="password">tiger</property>
<!--连接池中保留的最大连接数。默认值: 15 -->
<property name="maxPoolSize">100</property>
<!-- 连接池中保留的最小连接数,默认为:3 -->
<property name="minPoolSize">10</property>
<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3 -->
<property name="initialPoolSize">10</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
<property name="maxIdleTime">30</property>
<!--maxStatements:最大连接数。 -->
<property name="maxStatements">200</property>
</named-config>
</c3p0-config>
示例代码:
package com.hcq.main;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class Main {
public static void main(String[] args) {
try {
// 第一步:创建c3p0连接池
ComboPooledDataSource connPool = new ComboPooledDataSource("oracle");
// 第二步 :从c3p0连接池中取出一个连接
Connection conn = connPool.getConnection();
// 第三步:执行sql语句
PreparedStatement ps = conn.prepareStatement("SELECT empno,ename FROM emp");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int empno = rs.getInt(1);
String ename = rs.getString(2);
System.out.println("编号:" + empno + "\t姓名:" + ename);
}
// 第四步:释放连接将连接放回连接池
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
截图: