1 导入C3P0 jar 包, (百度自查) 2
5 XML配置: 6 <?xml version="1.0" encoding="UTF-8"?> 7 8 <c3p0-config> 9 10 <named-config name="myc3p0xml"> 11 12 <property name="driverClass">com.mysql.jdbc.Driver</property> 13 14 <property name="jdbcUrl">jdbc:mysql://localhost:3306/girlcloset</property> 15 16 <property name="user">root</property> 17 18 <property name="password">123456</property> 19 20 <property name="maxPoolSize">20</property> 21 22 <property name="initialPoolSize">10</property> 23 24 </named-config> 25 26 </c3p0-config> 27 28 代码部分 29 package com.project.c3p0demo32.tools; 30 31 import java.beans.PropertyVetoException; 32 import java.sql.Connection; 33 import java.sql.SQLException; 34 35 import com.mchange.v2.c3p0.ComboPooledDataSource; 36 37 public class C3P0Util implements Runnable{ 38 //创建一个连接池对象(连接到上述的name = myc3p0xml 配置文件) 39 private static ComboPooledDataSource pool = new ComboPooledDataSource("myc3p0xml"); 40 static{ 41 pool = new ComboPooledDataSource(); 42 try { 43 //加载数据库驱动 44 pool.setDriverClass("com.mysql.jdbc.Driver"); 45 //设置数据URL 46 pool.setJdbcUrl("jdbc:mysql://localhost:3306/girlcloset"); 47 //设置用户名 48 pool.setUser("root"); 49 //设置密码 50 pool.setPassword("123456"); 51 //设置初始化连接数 52 pool.setInitialPoolSize(10); 53 //设置最大连接数 54 pool.setMaxPoolSize(20); 55 } catch (PropertyVetoException e) { 56 e.printStackTrace(); 57 } 58 } 59 public static Connection getCon(){ 60 try { 61 return pool.getConnection(); 62 } catch (SQLException e) { 63 e.printStackTrace(); 64 } 65 return null; 66 } 67 public static void closeCon(Connection con){ 68 try { 69 con.close(); 70 } catch (SQLException e) { 71 e.printStackTrace(); 72 } 73 } 74 public static void main(String[] args) { 75 new Thread(new C3P0Util()).start(); 76 Connection con1 = getCon(); 77 Connection con2 = getCon(); 78 Connection con3 = getCon(); 79 try { 80 Thread.sleep(5000); 81 } catch (InterruptedException e) { 82 // TODO Auto-generated catch block 83 e.printStackTrace(); 84 } 85 closeCon(con1); 86 closeCon(con2); 87 closeCon(con3); 88 } 89 @Override 90 public void run() { 91 while(true){ 92 try { 93 System.out.println(pool.getNumIdleConnections()); 94 } catch (SQLException e) { 95 e.printStackTrace(); 96 } 97 try { 98 Thread.sleep(200); 99 } catch (InterruptedException e) { 100 e.printStackTrace(); 101 } 102 } 103 104 } 105 } 106