1.c3p0数据库连接池包的引入
2.建立jdbcpool.java文件
package com.dy.pool;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.DataSources;
public class JDBCPool {
public static void main(String[] args) {
PreparedStatement ps=null;
ResultSet rs=null;
try {
//注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//获得非池化的数据源
DataSource unpoolds=DataSources.unpooledDataSource("jdbc:oracle:thin:@127.0.0.1:1521:orcl2", "scott", "tiger");
//把非池的数据源转换成池的数据源
DataSource poolds=DataSources.pooledDataSource(unpoolds);
//C3P0是在第一获得连接的时候来初始化连接池
Connection conn=poolds.getConnection();
ps=conn.prepareStatement("select * from person");
rs=ps.executeQuery();
while(rs.next()) {
System.out.println("ID:"+rs.getString(1)+"姓名"+rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null) {
rs.close();
}
if(ps!=null) {
ps.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}}
3.c3p0-config.xml文件可以从c3p0包中去找
<?xml version="1.0" encoding="UTF-8"?> con_test 30000 30 10 30 100 10 200<user-overrides user="test-user">
<property name="maxPoolSize">10</property>
<property name="minPoolSize">1</property>
<property name="maxStatements">0</property>
</user-overrides>
50 100 50 1000
<!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property>
<!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe">
<property name="acquireIncrement">1</property>
<property name="initialPoolSize">1</property>
<property name="minPoolSize">1</property>
<property name="maxPoolSize">5</property>
<property name="maxStatementsPerConnection">50</property>
</user-overrides>