准备工作:

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. PostgreSql中如何kill掉正在执行的sql语句

    虽然可以使用 kill -9 来强制删除用户进程,但是不建议这么去做. 因为:对于执行update的语句来说,kill掉进程,可能会导致Postgres进入到recovery mode 而在recov ...

  2. BZOJ 2326 数学作业(矩阵)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2326 题意:定义Concatenate(1,N)=1234567……n.比如Concat ...

  3. ElasticSearch Remote Code Execution (CVE-2014-3120)

    Elasticsearch is a powerful open source search and analytics engine. The vulnerability allows attack ...

  4. Qt 多线程学习

    最近的项目上用到了关于多线程的知识,自己也比较感兴趣,所以就拿了那本<C++ GUI Qt4 编程>来学习. 这本书的第14章是关于多线程的知识,使用的Qt版本是Qt4.x.在下用的是最新 ...

  5. 【转】 Java 多线程之一

    转自   Java 多线程 并发编程 一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进 ...

  6. Raphael 目标点沿路径不断移动

    <!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8" ...

  7. 数据库语言(三):MySQL、PostgreSQL、JDBC

    MySQL MySQL资料很多,这里只给出一个在论坛博客中最常用的操作:分页 mysql> select pname from product limit 10,20; limit的第一个参数是 ...

  8. Oracle 课程八之跟踪事件set event

    一.Oracle跟踪文件 Oracle跟踪文件分为三种类型: 一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消 ...

  9. wait函数返回值总结

    之前在学习wait和waitpid函数的时候,就对使用宏WIFEXITED来检查获取的进程终止状态产生过疑惑:一般我们在程序中是调用的exit或者_exit函数来退出的,那么wait和waitpid函 ...

  10. 【原创】利用Windows系统日志统计员工每天上下班考勤时间

    利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份): using System; using System.Collections.Generic; using System ...