数据库连接学习(二)——Tomcat下使用C3P0配置JNDI数据源

来源:互联网 发布:别人要我电脑mac地址 编辑:程序博客网 时间:2024/06/05 00:31

一、C3P0下载

  C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar

  

  下载完成之后得到一个压缩包

二、使用C3P0配置JNDI数据源

  Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置JNDI数据源如下:

复制代码
 1 <Resource  2     name="oracleDataSource"  3     auth="Container"  4     type="javax.sql.DataSource"  5     maxActive="50"  6     maxIdle="10"  7     maxWait="10000"  8     username="lead_oams"  9     password="p" 10     driverClassName="oracle.jdbc.OracleDriver" 11     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文件中加入如下配置信息

复制代码
 1 <Context> 2     <!-- 使用C3P0配置针对MySQL数据库的JNDI数据源 --> 3     <Resource  4         name="jdbc/MysqlDataSource"  5         auth="Container" 6         factory="org.apache.naming.factory.BeanFactory"  7         type="com.mchange.v2.c3p0.ComboPooledDataSource" 8         driverClass="com.mysql.jdbc.Driver" 9         idleConnectionTestPeriod="60"10         maxPoolSize="50" 11         minPoolSize="2"12         acquireIncrement="2" 13         user="root" 14         password="root"15         jdbcUrl="jdbc:mysql://192.168.1.144:3306/leadtest"/>16         17     <!-- 使用C3P0配置针对Oracle数据库的JNDI数据源 -->18     <Resource 19         name="jdbc/OracleDataSource" 20         auth="Container"21         factory="org.apache.naming.factory.BeanFactory" 22         type="com.mchange.v2.c3p0.ComboPooledDataSource"23         driverClass="oracle.jdbc.OracleDriver"24         idleConnectionTestPeriod="60"25         maxPoolSize="50" 26         minPoolSize="2"27         acquireIncrement="2" 28         jdbcUrl="jdbc:oracle:thin:@192.168.1.229:1521:lead"29         user="lead_oams"30         password="p"/>31         32         33     <!--使用C3P0配置针对SQLServer数据库的JNDI数据源-->34     <Resource 35         name="jdbc/SqlServerDataSource"36         auth="Container"37         factory="org.apache.naming.factory.BeanFactory" 38         type="com.mchange.v2.c3p0.ComboPooledDataSource"39         driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"40         idleConnectionTestPeriod="60"41         maxPoolSize="50" 42         minPoolSize="2"43         acquireIncrement="2" 44         jdbcUrl="jdbc:sqlserver://192.168.1.51:1433;DatabaseName=demo"45         user="sa" 46         password="p@ssw0rd"/>47 </Context>
复制代码

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

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5"  3     xmlns="http://java.sun.com/xml/ns/javaee"  4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7   <welcome-file-list> 8     <welcome-file>index.jsp</welcome-file> 9   </welcome-file-list>10   11   <!-- 12       JNDI配置的资源引用:13   • res-ref-name:表示引用资源的名称14   • res-type:此资源对应的类型为javax.sql.DataSource15   • res-auth:容器授权管理16    -->17    <!--Oracle数据库JNDI数据源引用 -->18   <resource-ref>19       <description>Oracle DB Connection</description>20       <res-ref-name>jdbc/OracleDataSource</res-ref-name>21       <res-type>javax.sql.DataSource</res-type>22       <res-auth>Container</res-auth>23  </resource-ref>24   25   <!--MySQL数据库JNDI数据 -->26   <resource-ref>27       <description>MySQL DB Connection</description>28       <res-ref-name>jdbc/MysqlDataSource</res-ref-name>29       <res-type>javax.sql.DataSource</res-type>30       <res-auth>Container</res-auth>31   </resource-ref>32   33   <!--SQLServer数据库JNDI数据源引用 -->34   <resource-ref>35       <description>SQLServer DB Connection</description>36       <res-ref-name>jdbc/SqlServerDataSource</res-ref-name>37       <res-type>javax.sql.DataSource</res-type>38       <res-auth>Container</res-auth>39   </resource-ref>40   41 </web-app>
复制代码

  3.部署C3P0_JNDI_Config Web应用到Tomcat服务器测试JNDI数据源

  

  部署到tomcat服务器的webapps目录之后,tomcat服务器就会自动在\conf\Catalina\localhost目录下生成一个C3P0_JNDI_Config.xml文件,如下图所示:

  

  C3P0_JNDI_Config.xml文件中的内容就是我们在META-INF目录的context.xml文件中配置的那些内容。

0 0
原创粉丝点击