C3p0源码探索(一)之配置篇

C3p0源码探索(一)之配置篇

所需文件:

1、 c3p0-0.9.1.2.jar       http://sourceforge.net/projects/c3p0/

2、  mysql.jar       http://dev.mysql.com/downloads/connector/j/5.0.html

3、  c3p0-0.9.1.2http://nchc.dl.sourceforge.net/sourceforge/c3p0/c3p0-0.9.1.2.src.zip(可选)

拥有以上三样东西就可以开始c3p0之旅了,把mysql.jar和c3p0-0.9.1.2.jar放到classpath中就可以开始编写我们的代码了。

 

C3p0最简单的使用方式就如其官网下所说的一样,只需提供driverName,url,user,password,程序就可以跑起来。

 

第一种获取数据源的方式:

 

Java代码 复制代码  收藏代码
  1. ComboPooledDataSource cpds = new ComboPooledDataSource();   
  2.       String driverClass = "com.mysql.jdbc.Driver";   
  3.       String jdbcURL = "jdbc:mysql://localhost:3306/test";   
  4.       String user = "root";   
  5.       String password = "";   
  6.       cpds.setDriverClass(driverClass);   
  7.       cpds.setJdbcUrl(jdbcURL);   
  8.       cpds.setUser(user);   
  9.       cpds.setPassword(password);   
  10.       cpds.setMaxStatements(100);   
  11.       Connection conn = cpds.getConnection();  
ComboPooledDataSource cpds = new ComboPooledDataSource();      String driverClass = "com.mysql.jdbc.Driver";      String jdbcURL = "jdbc:mysql://localhost:3306/test";      String user = "root";      String password = "";      cpds.setDriverClass(driverClass);      cpds.setJdbcUrl(jdbcURL);      cpds.setUser(user);      cpds.setPassword(password);      cpds.setMaxStatements(100);      Connection conn = cpds.getConnection();
 

 

正如简单的jdbc连接数据库一样仅仅只需要这些参数而已。

 

对于这种配置,如果classpath中有c3p0.properties的配置文件,代码中不需要设置连接信息,直接new ComboPooledDataSource(),他会自动读取配置文件中的配置。当然也可以使用c3p0-config.xml文件配置连接信息,使用xml作为配置信息的话,comboPoolDataSource还可以接受一个String参数,这个参数的名称是在c3p0-config.xml文件中配置,这就意味着我们可以在xml文件中可有都多个数据库源连接信息,比如可以是mysql,oracle的。

 

Java代码 复制代码  收藏代码
  1. ComboPooledDataSource cpds = new ComboPooledDataSource(“test”);   
  2. "test">   
  3.     "maxStatements">200 "jdbcUrl">jdbc:mysql://localhost:3306/test   
  4.    "user">root   
  5.    "password">   
  6.   
ComboPooledDataSource cpds = new ComboPooledDataSource(“test”);    200 jdbc:mysql://localhost:3306/test   root   
 

 

使用配置文件的方式连接时,c3p0默认在classpath根目录读取配置文件,如果想把配置文件放在自己想放得地方只需设置系统属性

 

Java代码 复制代码  收藏代码
  1. System.setProperties(“ com.mchange.v2.c3p0.cfg.xml”,”config/c3p0-config.xml”);  
System.setProperties(“ com.mchange.v2.c3p0.cfg.xml”,”config/c3p0-config.xml”);
 

 

程序就在指定的目录下读取该配置文件。

第二种方式获取数据源,使用数据源工厂类DataSources

 

Java代码 复制代码  收藏代码
  1. DataSource ds = DataSources.unpooledDataSource(jdbcURL, user, password);   
  2. DataSource pooledDateSource = DataSources.pooledDataSource(ds);   
  3.       System.out.println(pooledDateSource.getConnection());  
DataSource ds = DataSources.unpooledDataSource(jdbcURL, user, password);DataSource pooledDateSource = DataSources.pooledDataSource(ds);      System.out.println(pooledDateSource.getConnection());
 

 

 

第三种获取数据源的方式:

 

Java代码 复制代码  收藏代码
  1. PoolBackedDataSource backedDataSource = new PoolBackedDataSource();   
  2. backedDataSource.setConnectionPoolDataSource(new ConnectionPoolDataSource() );   
  3. //实现自己的connectionpooldatasource即可  
PoolBackedDataSource backedDataSource = new PoolBackedDataSource();backedDataSource.setConnectionPoolDataSource(new ConnectionPoolDataSource() );//实现自己的connectionpooldatasource即可
 

参数配置:

除了以上连接数据库必要的参数外,提供以下最基本的参数配置信息才能形成数据库连接池

1、    acquireIncrement  每次连接增加数量

2、    initalPoolSize 初始连接数

3、    maxPoolSize   最大连接数

4、    maxIdleTime   最大空闲数

5、    minPoolSize   池中连接最小数量

 

Tomcat中配置c3p0的方法:

1、server.xml中配置

 

Xml代码 复制代码  收藏代码
  1.   
  2.       

     

    2、  conf目录下Context.xml

          

     

    3、  web.xml

     

    Xml代码 复制代码  收藏代码
    1.   
    2. jdbc/ test  
    3. javax.sql.DataSource  
    4.     Container  
    5.   
    jdbc/ testjavax.sql.DataSource    Container

     测试:

     

    Java代码 复制代码  收藏代码
    1. InitialContext context = new InitialContext();   
    2. return (DataSource) context.lookup("java:comp/env/jdbc/test");  

你可能感兴趣的:(Database,Oracle)