文档章节

java 使用tomcat的JNDI数据源

彭苏云
 彭苏云
发布于 2014/06/05 18:08
字数 324
阅读 92
收藏 0

终于有机会写一些比较基础的代码了,终于有机会在tomcat上配置jndi数据源了,但是这是一个费时间的过程。这里把这个过程记录如下。

目的:tomcat提供数据源,java代码中通过jdbc获取jndi,操作数据库。

步骤:

1、讲数据库的驱动jar放到tomcat的lib目录下,%TOMCAT_HOME%\lib

2、修改%TOMCAT_HOME%\conf目录下配置文件server.xml,增加如下内容:

<Context docBase="/securityProxyWeb" path="/securityProxyWeb" reloadable="true" debug="5" crossContext="true">
	<Resource name="jdbc/exoa" auth="Container" type="javax.sql.DataSource" maxIdle="10" initialSize="10" maxWait="10000" maxActive="20"
	driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:exoa" username="exoa" password="exoaexoa"  />
</Context>

注意上面的代码放在Host节点下面,如果读者要用的话,请修改具体的参数,username\password\url

3、web功能里面要使用tomcat的数据源,需在web.xml里面增加引用:

<resource-ref id="ResourceRef_1401952150839">
	<res-ref-name>jdbc/exoa</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

4、获取Connection的代码如下:

/**
	 * 获取数据库连接
	 * 
	 * @return
	 * @throws Exception
	 */
	public static Connection getConnection() throws Exception {
		Context context = null;
		DataSource dataSource = null;
		try {
			context = new InitialContext();
			try{
				//TOMCAT JDK1.6
				dataSource = (DataSource) context.lookup("java:comp/env/jdbc/exoa");
			}catch(Exception E){
				E.printStackTrace();
			}
			if(dataSource == null){
				//WAS JDK1.4
				dataSource = (DataSource) context.lookup("jdbc/exoa");
			}
			
			if (dataSource == null) {
				System.err.println("打开数据库连接出错!!!");
				return null;
			}
			return dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

 

© 著作权归作者所有

共有 人打赏支持
彭苏云
粉丝 41
博文 204
码字总数 54255
作品 0
广州
高级程序员
加载中

评论(2)

彭苏云
彭苏云
没改过来的时候,执行批量操作报了“oall8 处于不一致状态”这个问题,但是改过来就没了,具体原因不详。
彭苏云
彭苏云
第二步中在server.xml中配置url时,如果数据库是集群,请使用集群的url,尽量不要使用单个实例的URL,
集群URL的写法:
jdbc:oracle:thin:@//ip:port/服务名
[转]Spring引用Tomcat的 JTA事务

Spring引用Tomcat的JTA事务 Tomcat是Servlet容器,但它提供了JNDI的实现,因此用户可以象在Java EE应用程序服务器中一样,在Tomcat中使用JNDI查找JDBC数据源。在事务处理方面,Tomcat本身并不...

穿越星辰
2011/06/03
0
0
Spring引用Tomcat的 JTA事务

Spring引用Tomcat的 JTA事务 Tomcat是Servlet容器,但它提供了JNDI的实现,因此用户可以象在Java EE应用程序服务器中一样,在Tomcat中使用JNDI查找JDBC数据源。在事务处理方面,Tomcat本身并...

崔耀升
2010/06/12
0
0
Spring MVC 使用 JNDI 配置的DataSource

稍微看了下,Spring 中JNDI 的使用,弄了个小例子。有很多不完备的地方,以后慢慢看,再改吧。 <一> 技术使用 Spring MVC JDBC Template Maven JNDI <二> 一些配置 Maven POM 配置 spring-c...

平江夜弹
2015/06/29
0
0
Hinernate中获得数据库连接池的方式及应用

Hibernate可以与任何一种java应用的运行环境集成。Java应用的运行环境可分为两种。 (1)受管理环境(Managed environment):由容器负责管理各种共享资源(如线程池和数据库连接池),以及管理...

_守望者_
2014/04/22
0
0
Hibernate连接Server中的JNDI数据源(MYSQL)

Tomcat中数据源的配置及原理 一:数据源介绍 数据源简介 JDBC2.0提供了javax.sql.DataSource的接口,负责与数据库建立连接,实际应用时不需要编写连接数据库代码,可以直接从数据源获得数据库...

MoroseYu
2012/03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NIO与BIO的区别、NIO的运行原理和并发使用场景

NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的...

Java干货分享
38分钟前
1
0
Makefile 学习 1 - 基于若干 Blog 的汇总

基于若干 Blog 汇总的 makefile 教程 陈皓 https://blog.csdn.net/haoel/article/details/2886 Makefile 基础知识 1. 什么是 Makefile? 规定软件工程的编译规则。一个工程中的源文件,其按类...

公孙衍
51分钟前
1
0
72.告警系统邮件引擎 运行告警系统

20.23/20.24/20.25 告警系统邮件引擎 20.26 运行告警系统 20.23/20.24/20.25 告警系统邮件引擎 邮件首先要有一个mail.py,以下。 因为我们之前zabbix的时候做过,就可以直接拷贝过来 mail.s...

王鑫linux
今天
1
0
09-利用思维导图梳理JavaSE-

09-利用思维导图梳理JavaSE-Java IO流 主要内容 1.Java IO概述 1.1.定义 1.2.输入流 - InputStream 1.3.输出流 - OutputStream 1.4.IO流的分类 1.5.字符流和字节流 2.InputStream类 2.1.File...

飞鱼说编程
今天
3
0
Spring Cloud 微服务的那点事

在详细的了解SpringCloud中所使用的各个组件之前,我们先了解下微服务框架的前世今生。 单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开...

我是你大哥
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部