Tomcat配置c3p0数据源

使用C3P0配置JNDI数据源
Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置JNDI数据源如下:
 <Resource 
      name="oracleDataSource" 
      auth="Container" 
      type="javax.sql.DataSource" 
      maxActive="50" 
      maxIdle="10" 
      maxWait="10000" 
      username="lead_oams" 
      password="p" 
      driverClassName="oracle.jdbc.OracleDriver" 
      url="jdbc:oracle:thin:@192.168.1.229:1521:lead"/>


  如果想让Tomcat6.x使用C3P0连接池配置JNDI数据源,在配置时,以下配置项需要修改
   1、 type和factory的值发生变化
   2、username=>user
   3、url=>jdbcUrl
   4、driverClassName=>driverClass
  创建一个Web测试项目C3P0_JNDI_Config,解压压缩包,找到c3p0-0.9.5-pre9\lib目录下的相关Jar包.
  
  将C3P0的相关Jar包添加到项目中,在项目的META-INF目录下创建一个context.xml文件.
  
  在tomcat服务器的lib目录下添加Oracle、MySQL、SQLServer三种数据库的驱动jar包.
  
  1、在context.xml文件中加入如下配置信息


 <Context>
      <!-- 使用C3P0配置针对MySQL数据库的JNDI数据源 -->
      <Resource 
          name="jdbc/MysqlDataSource" 
          auth="Container"
          factory="org.apache.naming.factory.BeanFactory" 
          type="com.mchange.v2.c3p0.ComboPooledDataSource"
          driverClass="com.mysql.jdbc.Driver"
          idleConnectionTestPeriod="60"
          maxPoolSize="50" 
          minPoolSize="2"
          acquireIncrement="2" 
          user="root" 
          password="root"
          jdbcUrl="jdbc:mysql://192.168.1.144:3306/leadtest"/>
         
     <!-- 使用C3P0配置针对Oracle数据库的JNDI数据源 -->
     <Resource 
         name="jdbc/OracleDataSource" 
         auth="Container"
         factory="org.apache.naming.factory.BeanFactory" 
         type="com.mchange.v2.c3p0.ComboPooledDataSource"
         driverClass="oracle.jdbc.OracleDriver"
         idleConnectionTestPeriod="60"
         maxPoolSize="50" 
         minPoolSize="2"
         acquireIncrement="2" 
         jdbcUrl="jdbc:oracle:thin:@192.168.1.229:1521:lead"
         user="lead_oams"
         password="p"/>
            
     <!--使用C3P0配置针对SQLServer数据库的JNDI数据源-->
     <Resource 
         name="jdbc/SqlServerDataSource"
         auth="Container"
         factory="org.apache.naming.factory.BeanFactory" 
         type="com.mchange.v2.c3p0.ComboPooledDataSource"
         driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
         idleConnectionTestPeriod="60"
         maxPoolSize="50" 
         minPoolSize="2"
         acquireIncrement="2" 
         jdbcUrl="jdbc:sqlserver://192.168.1.51:1433;DatabaseName=demo"
         user="sa" 
         password="p@ssw0rd"/>
 </Context>


  2.在web.xml引用JDNI数据源:




 <?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" 
      xmlns="http://java.sun.com/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <!-- 
     res-ref-name:表示引用资源的名称
     res-type:    此资源对应的类型为javax.sql.DataSource
     res-auth:    容器授权管理
   -->
    <!--Oracle数据库JNDI数据源引用 -->
   <resource-ref>
       <description>Oracle DB Connection</description>
       <res-ref-name>jdbc/OracleDataSource</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
  </resource-ref>
   
   <!--MySQL数据库JNDI数据 -->
   <resource-ref>
       <description>MySQL DB Connection</description>
       <res-ref-name>jdbc/MysqlDataSource</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
   </resource-ref>
   
   <!--SQLServer数据库JNDI数据源引用 -->
   <resource-ref>
       <description>SQLServer DB Connection</description>
       <res-ref-name>jdbc/SqlServerDataSource</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
   </resource-ref>
   
 </web-app>

你可能感兴趣的:(c3p0,tomcat配置c3p0数据源)