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>
C3P0Util:
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); } }