数据库连接池C3P0 小结

此配置是局部配置,要想用全局配置可以通过图形化界面配置,但现在到tomcat5.5为止,很不稳定
c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成
下面的代码写在server.xml中的<Host>.....</Host>中
数据库的驱动程序放在tomcat/common/lib下,最好下载最新的数据库驱动程序
C3P0的jar包也放在tomcat/common/lib下
在此要特别注意的是,在使用c3p0时,我们在处理大字段时要用到c3p0的com.mchange.v2.c3p0.impl.NewProxyResultSet;
进行转换,例如:
Clob ctextb = ((NewProxyResultSet)rs).getClob(i++);

属性说明
 path="/项目名"
 minPoolSize 池中保留的最小连接数
 maxPoolSize 池中保留的最大连接数
 initialPoolSize 初始化时的连接数,应该在minPoolSize与maxPoolSize之间 默认为3
 acquireIncrement 当池中的连接消耗光时一次性获得的连接数,最大不会超过maxPoolSize
<Context path="/jliet" docBase="jliet" debug="0" crossContext="true">
 <Logger className="org.apache.catalina.logger.FileLogger"
  prefix="localhost_DBTest_log." suffix=".txt"
  timestamp="true"/>
  <Resource name="jdbc/pooledDS" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource" />
  <ResourceParams name="jdbc/pooledDS">
   <parameter>
    <name>factory</name>
    <value>org.apache.naming.factory.BeanFactory</value>
   </parameter>
   <parameter>
    <name>driverClass</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
   </parameter>
   <parameter>
    <name>jdbcUrl</name>
    <value>jdbc:oracle:thin:@127.0.0.1:1521:comm</value>
   </parameter>
   <parameter>
    <name>user</name>
    <value>shangwu</value>
   </parameter>
   <parameter>
    <name>password</name>
    <value>password</value>
   </parameter>
   <parmeter>
    <name>initialPoolSize</name>
    <value>10</value>
   </parmeter>
   <parameter>
    <name>minPoolSize</name>
    <value>5</value>
   </parameter>
   <parameter>
    <name>maxPoolSize</name>
    <value>50</value>
   </parameter>
   <parameter>
    <name>acquireIncrement</name>
    <value>5</value>
   </parameter>   
  </ResourceParams>
</Context>

项目下的web.xml配置
此配置放在<web-app>...</web-app>中间
<res-ref-name>jdbc/pooledDS</res-ref-name>的名字要跟server.xml中的Resource name="jdbc/pooledDS" 名字相同
<resource-ref>
  <res-ref-name>jdbc/pooledDS</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
java中的调用
Connection dbConnection;
Context initContext = null;
initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/pooledDS");      //此处读取的就是xml中名字相同的那部分
//得到连接
dbConnection = ds.getConnection();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值