准备工作:

Tomcat版本:tomcat6.0以上

下例中均使用MySQL数据库

将对应数据源的jar包和MySQL的驱动包拷贝至tomcat的lib文件夹下

一、全局数据源

1步骤一:配置

在tomcat下的conf/server.xml的GlobalNamingResources节点标签中增加如下配置:

A、 最基本的DataSource配置:

<Resource name="jndi " auth="Container"

type="javax.sql.DataSource"

username="root" 

password="root"

driverClassName="org.gjt.mm.mysql.Driver" 

url="jdbc:mysql://localhost/test" 

maxActive="100" 

maxIdle="30" 

maxWait="10000"/>

B、 DBCP连接池配置:

<Resource name="jndi " auth="Container"

type="javax.sql.DataSource"

username="root" 

password="root"

driverClassName="org.gjt.mm.mysql.Driver" 

url="jdbc:mysql://localhost/test"

Factory=“org.apache.commons.dbcp.BasicDataSourceFactory”

maxActive="100" 

maxIdle="30" 

maxWait="10000"/>

C、C3P0连接池配置:

<Resource name="jndi"

type="com.mchange.v2.c3p0.ComboPooledDataSource"

factory="org.apache.naming.factory.BeanFactory"

jdbcUrl="jdbc:mysql://localhost:3306/test"driverClass="com.mysql.jdbc.Driver"

user="root"password="root" />

D、Tomcat7 自带的额数据库连接池

<Resource name="jndi " auth="Container"

type="javax.sql.DataSource"

username="root" 

password="root"

driverClassName="org.gjt.mm.mysql.Driver" 

url="jdbc:mysql://localhost/test"

Factory=”
org.apache.tomcat.jdbc.pool.DataSourceFactory”

maxActive="100" 

maxIdle="30" 

maxWait="10000"/>

这样,数据源就配好了,但是如果你想要在你的项目中来使用,那么就需要在你项目的WebRoot下的META—INF下新建一个名为context.xml的文件夹,加入下面的配置(当然也可以直接配置tomcat下的conf/context.xml中,推荐放在META-INF中,这样方便移植):

<Context>

<ResourceLink  global="jndi"

name="jndiA"

type="javax.sql.DataSource"/>

</Context>

说明:jndi是全局的JNDI名称,jndiA是你的应用中使用的JNDI名称,明显上述配置的作用就是把全局JNDI数据源与应用中使用的数据源关联起来!

2.步骤2:使用JNDI数据源

A.代码中使用:

Context ctx = new InitialContext() ;

  DataSource ds = (DataSource)ctx.lookup("java:comp/env/jndiA ");

  Connection conn = ds.getConnection() ;

B.如果使用spring,那么在spring的配置文件中按如下方式配置DataSource即可:

<beanid="dataSource"

class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName"value="java:comp/env/jndiA " />

</bean>

二、配置局部数据源:

局部数据源最好配置在项目WebRoot下的META-INF中的context.xml文件中的context节点中,配置的语法同全局数据源的配置方式,这样配的好处是可以直接在项目当中修改配置信息,而不用单独去修改tomcat的配置文件。

需要注意的是此时在项目中使用的JNDI name就是你配置信息中的name,这一点与全局稍有区别。

注:c3p0数据源配在这里的context中我没有测试成功,启动tomcat的时候,日志打印到no spring webapplicationinitializer types detected on classpath 就会一直卡在这里,最后超过tomcat的启动时间然后报错!对于这个问题,请教各位知道的大神!

Tomcat中配置JNDI数据源的更多相关文章

  1. Spring MVC 使用tomcat中配置的数据源

    Spring MVC 使用tomcat中配置的数据源 配置tomcat数据源 打开tomcat目录下的conf目录,编辑sever.xml目录.在<GlobalNamingResources&g ...

  2. tomcat中配置jndi数据库源

    tomcat添加依赖 lib目录下添加依赖mysql-connector-java-8.0.16 配置数据源 介绍两种方法:tomcat中配置或web应用中配置 tomcat/conf/context ...

  3. tomcat中配置JNDI方法

    1.项目中spring的数据源配置: <bean id="dataSource" class="org.springframework.jndi.JndiObjec ...

  4. tomcat下配置jndi数据源c3p0

    Tomcat下通过JNDI配置数据源,使用c3p0连接池 首先在打开tomcat找到在conf文件下,找到server.xml 在server.xml文件中找到标签 在下面添加如下配置 <Res ...

  5. spring中配置jndi数据源

    spring  AplicationContext.xml中的配置 <bean id="dataSource1" class="org.springframewor ...

  6. 在Tomcat中配置MySQL数据源

    打开context.xml文件,路劲为:apache-tomcat-7.0.61\conf,添加如下代码: <Resource auth="Container" driver ...

  7. JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

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

  8. Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)

    一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包

  9. JNDI学习总结——Tomcat下使用C3P0配置JNDI数据源

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

随机推荐

  1. NDK(22)JNI编程如何避免常见缺陷

    转自 : http://www.ibm.com/developerworks/cn/java/j-jni/index.html 避免常见缺陷 假设您编写了一些新 JNI 代码,或者继承了别处的某些 J ...

  2. objcopy

    objcopy objcopy [options] infile [outfile] Copy the contents of the input object file to another fil ...

  3. UVa 12661 (单源最短路) Funny Car Racing

    题意: 有一个赛车跑道,可以看做一个加权有向图.每个跑道(有向边)还有一个特点就是,会周期性地打开a秒,然后关闭b秒.只有在赛车进入一直到出来,该跑道一直处于打开状态,赛车才能通过. 开始时所有跑道处 ...

  4. BZOJ3850: ZCC Loves Codefires

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3850 题解:类似于国王游戏,推一下相邻两个元素交换的条件然后排个序就可以了. 代码: #inc ...

  5. Oracle 数据库整理表碎片

    Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎 ...

  6. linux 服务自动调用

    php服务地址: http://192.168.2.117/web/index.php/buy/auctionselect 编写脚本service.sh,内容: #! /bin/sh crul htt ...

  7. 通过对源代码的反向工程学习CoreData架构

    在本文开始,先给出反向工程后的结果: 不过需要注意,三个实例的指针都被同一个实例拥有,比如三个指针都位于appDelegate. 在AppDelegate类中定义了下面三个属性: @property ...

  8. Mac终端编译运行C++

    1.在编辑器中写好C++代码 2.打开终端打开文件对应的地址 3.用g++命令来编译.cpp文件 4.用./文件名来运行 观察文件的目录可发现 g++ 源文件名 编译源文件,产生a.out ./文件名 ...

  9. 【JS】js获得下拉列表选中项的值和id

    function tijiao(){ var elem = document.getElementById("dish_sort"); var index=elem.selecte ...

  10. $( ).focus()与$( )[0].focus()区别

    $( #id).focus()与$( #id)[0].focus()没有区别,因为id必须是唯一的.如果同一页面出现多个相同的ID(这是不符合w3c规范的),$(#id)也只会拿到第一个该ID,后面的 ...