功能:

  1. 通过池的概念,来减少频繁创建和关闭数据库物理连接的资源消耗

 

知识点摘要:

  1. 数据库连接池(数据源),本文主要介绍C3P0
  2. 建立和关闭数据库物理连接是及其耗费系统资源的,所以使用连接池来管理
  3. 系统启动时建立一定的数据库连接,将其放入池中,当需要的时候直接从池中拿,用完后再放回池中,这样避免了数据库连接频繁打开关闭而造成的系统性能下降问题

 

说明:

  1. 事情前请先下载对应的jar包
    地址:下载地址(2013-03-03有效)
  2. 下载好之后导入c3p0-0.9.2.jar、mchange-commons-java-0.2.3.3.jar这两个jar包到您的项目中
  3. 本文为了清楚的演示将所有的配置信息都写在了java文件中,真实工作中请将其移入配置文件(xml或者资源文件)
  4. 想了解更多?请看:c3p0官方使用指引(2013-03-03有效)

 

程序演示: 放大

  1. package com.cxy.jdbc;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.ResultSet;  
  5. import java.sql.Statement;  
  6.   
  7. import com.mchange.v2.c3p0.ComboPooledDataSource;  
  8.   
  9. /** 
  10.  * @author cxy @ www.cxyapi.com 
  11.  */  
  12. public class C3p0Test  
  13. {  
  14.     public static void main(String[] args) throws Exception  
  15.     {  
  16.         ComboPooledDataSource ds=new ComboPooledDataSource();  
  17.         ds.setDriverClass("com.mysql.jdbc.Driver");  //加载对应数据库的驱动  
  18.         ds.setJdbcUrl("jdbc:mysql://localhost/dbtest"); //设置数据库的URL  
  19.         ds.setUser("root");  //设置数据库用户名  
  20.         ds.setPassword("root");  //设置数据库密码  
  21.         ds.setInitialPoolSize(5);  //初始创建连接数  
  22.         ds.setMinPoolSize(5);  //最小连接数  
  23.         ds.setMaxPoolSize(10); //设置连接池最大连接数  
  24.         ds.setMaxStatements(100);  //缓存Statement的最大数  
  25.         //当然 配置不仅仅这么多 如果想知道更多 那么请看下载下来zip包内有文档,里面提供更多更详尽的配置信息  
  26.           
  27.         try  
  28.         (  
  29.             Connection con=ds.getConnection();  
  30.             Statement stmt=con.createStatement();  
  31.             ResultSet rs=stmt.executeQuery("select * from t_student");    
  32.         )  
  33.         {  
  34.             System.out.println("id\t姓名\t 性别");  
  35.             while(rs.next())  
  36.             {  
  37.                 System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));  
  38.             }  
  39.         }  
  40.     }  
  41.   
  42. }