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

Tomcat配置c3p0数据源

2015-05-11 21:12 225 查看
使用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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: