您的位置:首页 > 运维架构 > Tomcat

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

2016-03-03 11:51 579 查看


一、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.DataSource
15   • 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文件中配置的那些内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: