方法类
package cn.sourceUntil; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /* C3P0连接池的工具类 使用C3P0获得连接对象 连接池有一个规范接口 javax.sal.DataSourse 接口 定义了一个从连接池中获得连接的方法 getConnection(); 步骤 0. 导入jar包 1. 在成员变量位置创建一个静态的ComboPooledDtatSource 对象 2. 在静态代码块中使用ComboPooledDtatSource 对象 setxxxx方法 设置数据库连接 3. 定义一个静态方法 ComboPooledDtatSource 对象中获得数据库连接 Coonection 4. 释放资源(归还); */ public class C3P0Utils { //1. 在成员变量位置创建一个静态的ComboPooledDtatSource 对象 private static ComboPooledDataSource dataSource=new ComboPooledDataSource(); //2. 在静态代码块中使用ComboPooledDtatSource 对象 setxxxx方法 设置数据库连接 static { try { //设置注册驱动程序 dataSource.setDriverClass("com.musql.jdbc.Dringver"); //设置URL dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day05"); //设置数据库用户名 dataSource.setUser("root"); //设置数据库密码 dataSource.setPassword("root"); } catch (PropertyVetoException e) { e.printStackTrace(); } } //3. 定义一个静态方法 ComboPooledDtatSource 对象中获得数据库连接 Coonection public static Connection getConnection(){ try { return dataSource.getConnection(); } catch (SQLException e) { throw new RuntimeException("数据库连接失败"); } } //定义一个静态方法 可以返回连接池 public static ComboPooledDataSource getDatesource(){ return dataSource; } //4. 释放资源(归还); public static void close(ResultSet rs, Statement stat,Connection conn){ if (rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stat!=null){ try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { conn.close();//不是关 是归还 } catch (SQLException e) { e.printStackTrace(); } } } }测试类
package cn.cn.sourceTest; import cn.sourceUntil.C3P0Utils; import org.junit.Test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TestC3P0Until { @Test public void tes01() throws SQLException { //使用C3P0工具类 获得getConnection Connection conn = C3P0Utils.getConnection(); System.out.println(conn); Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery("SELECT * FROM users"); System.out.println("123456"); //遍历结果集 while (rs.next()){ System.out.println(rs.getInt("cid")+rs.getString("pname")+rs.getString("pasword")); } //释放资源 C3P0Utils.close(rs,stat,conn); } }C3P0Utils
package cn.lijun.utils; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class C3P0Utils { private static ComboPooledDataSource dataSource = new ComboPooledDataSource(); public static DataSource getDataSource(){ return dataSource; } public static Connection getConnection() throws SQLException{ return dataSource.getConnection(); } public static void close(ResultSet rs,Statement stat,Connection con){ if(rs!=null) try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } if(stat!=null) try{ stat.close(); }catch(Exception ex){} if(con!=null) try{ con.close(); }catch(Exception ex){} } }C3P0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/shoop</property> <property name="user">root</property> <property name="password">root</property> </default-config> </c3p0-config>忙活忙活又一天!!!! 昨夜雨疏风骤,今日卷帘人依旧, 哈哈哈哈哈哈!!!!