C3P0数据库连接池使用
1、拷贝jar包:c3p0-0.9.1.2.jar c3p0-0.9.1.2-jdk1.3.jar c3p0-oracle-thin-extras-0.9.1.2.jar(oracle需要)
2、书写配制文件放在src目录下:c3p0-config.xml(名字只能是这个)
3、类C3P0Util
c3p0-config.xml 内容:
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- This is default config! --> <default-config> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> <!-- This is my config for mysql--> <named-config name="mysql"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property> <property name="user">root</property> <property name="password"></property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </named-config> <!-- This is my config for 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">liang</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </named-config> </c3p0-config>
package com.liang.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 数据库工具类
* @author liang
*
*/
public class C3P0Util {
static ComboPooledDataSource cpds=null;
static{
//这里有个优点,写好配置文件,想换数据库,简单
//cpds = new ComboPooledDataSource("oracle");//这是oracle数据库
cpds = new ComboPooledDataSource("mysql");//这是mysql数据库
}
/**
* 获得数据库连接
* @return Connection
*/
public static Connection getConnection(){
try {
return cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
/**
* 数据库关闭操作
* @param conn
* @param st
* @param pst
* @param rs
*/
public static void close(Connection conn,PreparedStatement pst,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pst!=null){
try {
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 测试DBUtil类
* @param args
*/
public static void main(String[] args) {
Connection conn=getConnection();
System.out.println(conn.getClass().getName());
close(conn,null,null);
}
}