c3p0的相关配置说明

http://blog.csdn.net/cyq1984/article/details/11934897


Hibernate推荐使用c3p0作为数据库连接池,管理数据库连接的资源。如果使用的应用服务器为非商业版本(比如:tomcat等),建议使用c3p0作为数据库连接池。但是,如果使用的是商业应用服务器,建议使用应用服务器内置的数据库连接池。因为,商业产品一般都会提供连接池的运行情况监控信息,从而便于未来应用的调优等操作。

但是,对于c3p0的配置,由于之前一直没有时间仔细研究,因此,也就暂且搁置。目前,又要使用hibernate,便又拿来,顺便把自己所搜罗到的所有的参数都记录下来,以备查。
c3p0的配置方式分为三种,分别是:
  1. setters一个个地设置各个配置项
  2. 类路径下提供一个c3p0.properties文件
  3. 类路径下提供一个c3p0-config.xml文件

setters

顾名思义,就是一个个地设置各个配置项,这个需要在相关的代码中执行,个人感觉使用起来相对比较费劲。

[java]  view plain  copy
  1. Properties props = new Properties();  
  2. InputStream in = ConnectionManager.class.getResourceAsStream("/c3p0.properties");  
  3. props.load(in);  
  4. in.close();  
  5. ComboPooledDataSource cpds = new ComboPooledDataSource();  
  6. cpds.setDriverClass(props.getProperty("driverClass"));  
  7. cpds.setJdbcUrl(props.getProperty("jdbcUrl"));  
  8. cpds.setUser(props.getProperty("user"));  
  9. cpds.setPassword(props.getProperty("password"));  
类路径下提供一个c3p0.properties文件
文件的命名必须是c3p0.properties,c3p0会自动加载此资源文件的内容,并按照其中的配置进行数据源管理。文件内容格式类似于:

[html]  view plain  copy
  1. c3p0.driverClass=com.mysql.jdbc.Driver  
  2. c3p0.jdbcUrl=jdbc:mysql://localhost:3306/jdbc  
记得是c3p0.后面加属性名就是了,最后初始化数据源的方式就是这样简单:
[java]  view plain  copy
  1. private static ComboPooledDataSource ds = new ComboPooledDataSource();  
  2.        
  3. public static Connection getConnection() {  
  4.     try {  
  5.         return ds.getConnection();  
  6.     } catch (SQLException e) {  
  7.         throw new RuntimeException(e);  
  8.     }  
  9. }  
类路径下提供一个c3p0-config.xml文件
这种方式使用方式与第二种差不多,但是有更多的优点
(1)更直观明显,很类似hibernate和spring的配置
(2)可以为多个数据源服务,提供default-config和named-config两种配置方式

[html]  view plain  copy
  1. <c3p0-config>  
  2.   <default-config>    
  3.     <property name="user">root</property>  
  4.     <property name="password">java</property>  
  5.     <property name="driverClass">com.mysql.jdbc.Driver</property>  
  6.     <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>  
  7.        
  8.     <property name="initialPoolSize">10</property>  
  9.     <property name="maxIdleTime">30</property>  
  10.     <property name="maxPoolSize">100</property>  
  11.     <property name="minPoolSize">10</property>  
  12.   </default-config>  
  13.      
  14.   <named-config name="myApp">  
  15.     <property name="user">root</property>  
  16.     <property name="password">java</property>  
  17.     <property name="driverClass">com.mysql.jdbc.Driver</property>  
  18.     <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>  
  19.        
  20.     <property name="initialPoolSize">10</property>  
  21.     <property name="maxIdleTime">30</property>  
  22.     <property name="maxPoolSize">100</property>  
  23.     <property name="minPoolSize">10</property>  
  24.   </named-config>  
  25. </c3p0-config>  
如果要使用default-config则初始化数据源的方式与第二种一样,如果要使用named-config里面配置初始化数据源,则只要使用一个带参数的ComboPooledDataSource构造器就可以了。
[java]  view plain  copy
  1. private static ComboPooledDataSource ds = new ComboPooledDataSource("myApp"); 
转载自:http://blog.csdn.net/cyq1984/article/details/11934897
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值