C3P0 连接池

  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  
 
原文地址:https://www.cnblogs.com/thelovelybugfly/p/10821939.html