Tomcat中配置JNDI数据源
准备工作:
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数据源的更多相关文章
- Spring MVC 使用tomcat中配置的数据源
Spring MVC 使用tomcat中配置的数据源 配置tomcat数据源 打开tomcat目录下的conf目录,编辑sever.xml目录.在<GlobalNamingResources&g ...
- tomcat中配置jndi数据库源
tomcat添加依赖 lib目录下添加依赖mysql-connector-java-8.0.16 配置数据源 介绍两种方法:tomcat中配置或web应用中配置 tomcat/conf/context ...
- tomcat中配置JNDI方法
1.项目中spring的数据源配置: <bean id="dataSource" class="org.springframework.jndi.JndiObjec ...
- tomcat下配置jndi数据源c3p0
Tomcat下通过JNDI配置数据源,使用c3p0连接池 首先在打开tomcat找到在conf文件下,找到server.xml 在server.xml文件中找到标签 在下面添加如下配置 <Res ...
- spring中配置jndi数据源
spring AplicationContext.xml中的配置 <bean id="dataSource1" class="org.springframewor ...
- 在Tomcat中配置MySQL数据源
打开context.xml文件,路劲为:apache-tomcat-7.0.61\conf,添加如下代码: <Resource auth="Container" driver ...
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包
- JNDI学习总结——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
随机推荐
- Android的底层库libutils介绍
第一部分 libutils概述 libutils是Android的底层库,这个库以C++实现,它提供的API也是C++的.Android的层次的C语言程序和库,大都基于libutils开发. libu ...
- [POJ3279]Fliptile(开关问题,枚举)
题目链接:http://poj.org/problem?id=3279 题解:http://www.cnblogs.com/helenawang/p/5538547.html /* ━━━━━┒ギリギ ...
- git版本库底层命令
当我们在使用git的时候,有时候需要知道当前文件夹相对于工作目录根目录的相对路径等等,那么我们可以使用 git rev-parse 添加一个参数就可以实现,如: 显示当前仓库版本库 .git 目录所在 ...
- maven - setting.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...
- WebActivatorEx
using System; using NLog; using System.Web.Optimization; [assembly: WebActivatorEx.PreApplicationSta ...
- bzoj2794
这题我得到一个经验,bool型的dp一定要想办法把bool去掉来表示更多的东西(1933也是这个道理) 暴力大家都会,这里有两个限制条件 一个限制条件我们可以排序不断加入,另一个呢 我们可以用f[i] ...
- iOS开发:Swift多线程NSOperation的使用
介绍: NSOperation是基于GCD实现,封装了一些更为简单实用的功能,因为GCD的线程生命周期是自动管理,所以NSOperation也是自动管理.NSOperation配合NSOperatio ...
- iOS开发:Swift多线程NSThread的使用
一:创建线程,NSThread创建线程常用的三种方式: //1:手动创建启动 let thread:NSThread = NSThread(target: self, selector:"d ...
- json格式的字符串使用string.Format()方法报错:输入字符串的格式不正确
解决:把大括号转义一下就可以了啊,大括号的转义是两个{{ 结尾是}} 今天看同事写的代码,发现他在使用string.format拼接类似json格式的数据时,大括号多了一对,感觉不对就查了查 ...
- Android02--debug.keystore的注册信息
1 -- 签名文件的密钥 默认签名文件的密码是:android 该文件的存放点是: 2 -- 签名文件的签名信息 keytool -list -v -keystore C:\Users\motadou ...