Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tomcat中用JNDI方式加载JDBC DataSource以连接数据库

Tomcat中用JNDI方式加载JDBC DataSource以连接数据库

原创
作者头像
Java天坑
修改于 2018-10-23 08:25:47
修改于 2018-10-23 08:25:47
8610
举报
文章被收录于专栏:Java进阶干货Java进阶干货

概括一下,大致分为四步:安装驱动,填充context.xml,填充web.xml,编写程序取得连接。通过一个小DEMO对这种配置方式有了一点了解,以tomcat6.0连接mysql5.0.8数据库为例。

安装驱动

下载与所要连接的数据库版本对应的JDBC驱动程序,加入到应用的CLASSPATH。如果用tomcat部署,tomcat中最好也加上(笔者觉得好像没必要加,可是不加的话会报错……所以还是加了)。应该有办法不加的,若有高手路过,请指点。

填充context.xml

这里就像是做声明样的,把你要连接时的相关属性定义在里面。我的配置如下:

<Context crossContext="true" docBase="E:/workspace/myeclipse-workspace/WebDevDemo/WebRoot" path="/webdemo">

<Resource name="jdbc/EmployeeDB"

auth="Container"

type="javax.sql.DataSource"

username="root"

password=""

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/employee"

maxActive="8"

maxIdle="4"/>

</Context>

填充web.xml。我的配置:

<resource-ref>

<res-ref-name>jdbc/EmployeeDB</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

编写程序取得连接。俺的程序:

Context ctx = null;

Context context = null;

DataSource dataSource = null;

Connection conn = null;

PreparedStatement statement = null;

ResultSet rs = null;

try {

ctx = new InitialContext();

context = (Context) ctx.lookup("java:comp/env");

dataSource = (DataSource)context.lookup("jdbc/EmployeeDB");

} catch (NamingException e) {

e.printStackTrace();

}

try {

conn = dataSource.getConnection();//获得连接

//            取数据

statement = conn.prepareStatement(SQL_FIND_ALL_SALARY_RECORDS);

rs = statement.executeQuery();

} catch (SQLException e) {

e.printStackTrace();

}

按照以上的方式就能在tomcat里以配置的形式连接数据库,比我们把所有的连接属性都定义在类里要方便多了。由于公司用的还是5.0版的tomcat,所以笔者也用这个进行了实验,在操作上与6.0有两处不同:

(1)在上面的第一步,加载驱动时。若是5.0版的,驱动的JAR包要放在%CATALINA_HOME%\common\lib下面;若是6.0版的,驱动的JAR包要放在%CATALINA_HOME%\lib下面。

(2)在上面的第二步,声明连接的方式有所不同。5.0版比较复杂点,需要像下面这样配:

<Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/EmployeeDB">

<parameter>

<name>username</name>

<value>root</value>

</parameter>

<parameter>

<name>password</name>

<value></value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.mysql.jdbc.Driver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:mysql://localhost:3306/employee</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>8</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>4</value>

</parameter>

</ResourceParams>

</Context>

效果一样,只是写法不同,6.0版本对配置文件做了简化,所以看起来清爽一些。呵呵,这貌似就是软件的升级哦

欢迎工作一到五年的Java工程师朋友们加入Java工程师学习交流群:795632998

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
tomcat5配置常见数据库连接池的例子.
环境: w2kp sp4, jsdk1.4.2_8; tomcat5.0.2.8; oracle817, sqlserver2000 sp3 , mysql5 beta
jack.yang
2025/04/05
1470
JNDI数据库连接池
JNDI的全称是java命名与目录接口(Java Naming and Directory Interface),是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。我们可以把JNDI简单地理解为是一种将对象和名字绑定的技术,即指定一个资源名称,将该名称与某一资源或服务相关联,当需要访问其他组件和资源时,就需要使用JNDI服务进行定位,应用程序可以通过名字获取对应的对象或服务。 JNDI方式 - 配置Tomcat6.0 连接池 数据库连接池的基本思想就是为数据库连
汤高
2018/01/11
2.3K0
Tomcat 6 JNDI数据源详解
数据库连接池这个概念应该都不陌生,在Java中连接池也就是数据库的连接池,它是一种采用连接复用的思想避免多次连接造成资源的浪费机制。 最常见的连接池就是DBCP和C30P了,在tomcat中默认使用
用户1154259
2018/01/17
9950
Tomcat 6 JNDI数据源详解
tomcat配置数据库连接池
数据库连接池是干啥的我就不用多少了,从名字上就可以看的出来(A:我看不出来。B:去看百科:http://baike.baidu.com/view/84055.htm)。因此在这就说一下简单的配置经过。
the5fire
2019/02/28
4.4K0
tomcat7中配置c3p0数据库连接池 原
参考的是:http://bioubiou.iteye.com/blog/1776589和http://bbs.csdn.net/topics/390708897
克虏伯
2019/04/15
9790
tomcat7中配置c3p0数据库连接池
                                                                            原
数据源及分层开发
Java Naming and Directory Interface,Java命名和目录接口
xiaozhangStu
2023/05/04
3940
Tomcat-9.JNDI资源
Tomcat为每个在其上运行的web应用提供了一个JNDI的** InitialContext**实现实例,它与Java EE应用服务器提供的对应类完全兼容。 Java EE标准在/WEB-INF/web.xml文件中提供了一系列标准元素,用来引用或者定义资源。
悠扬前奏
2019/05/28
1.3K0
tomcat数据源配置
配置webRoot/WEB-INF/aurora.database/datasource.config文件:
栋先生
2018/09/29
3.6K0
tomcat数据源配置
hibernate 在tomcat7.X 下配置mysql数据源「建议收藏」
今天刚看到hibernate,发如今hibernate配置数据源时网上的资料都太久远了,一般以tomcat 5 版本号下的配置居多。而tomcat 7下的配置略有变化,新手找资料困难,可能会略受打击,故整理资料与大家共享。也可作备忘之用。若有不当之处。还请指教!
全栈程序员站长
2022/07/07
5950
Java Web之MySQL在项目中的使用
尴尬:access denied for user ’root’@’localhost’ using password yes 有时候,在连接 MySQL 数据的时候,会报一个错误信息 "access denied for user ’root’@’localhost’ using password yes",看到这个错误不要一脸懵逼,造成错误的原因就是数据库访问的用户名或密码不正确,这时候一般又分为以下两种情况,分别说一说解决方法。 一、新安MySQL未设置密码,这种情况就需要添加密码,如何添加? 1、
YungFan
2018/05/03
1.1K0
Confluence 6 新 Confluence 安装配置一个数据源连接
如果在你的 Tomcat 中配置了数据源,并且Confluence 设置指南在安装的时候检测到这个配置的时候,配置数据源的选项将会提供给你进行配置。入股你希望使用数据源,请参考下面的配置。
HoneyMoose
2019/01/31
1.3K0
Tomcat 6 --- JNDI详解
JNDI(Java Naming and Directory Interface, Java命名和目录接口),说白了,就是通过配置一些xml文件,方便用户直接调用API使用某些通用的资源。 举个简单
用户1154259
2018/01/17
1.3K0
Tomcat 6 --- JNDI详解
史上最全web.xml配置文件元素详解
在servlet里面可以通过 getServletContext().getInitParameter(“context/param”)得到
阿豪聊干货
2018/08/09
3840
Web.xml配置说明
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149544.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
7260
C3P0连接池配置和实现详解「建议收藏」
一、C3P0配置 c3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p0-config.xml文件
全栈程序员站长
2022/06/30
2.4K0
web.xml文件的作用及基本配置
Java的web工程中的web.xml文件有什么作用呢?它是每个web工程都必须的吗?
bear_fish
2018/09/19
1.6K0
web.xml详解
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
河岸飞流
2019/08/09
7760
Tomcat配置JNDI数据源
本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一、思考 从我们学习Web开发以来,我们都是通过程序代码来实现数据库的访问的。从一开始直接将数据库配置信息写在代码中,到后来将配置信息抽取出来写在了Properties文件中,我们访问数据库的代码更加精简。 而通过JNDI方式访问数据库则更为直接,JNDI连接数据库的方式直接将数据库信息放在Tomcat中,而项目代码里直接通过JNDI技术就可以得到数据源。他们之间通
陈树义
2018/04/13
2.2K0
weblogic EJB 学习
大家好,又见面了,我是你们的朋友全栈君。 EJB 学习笔记 1、ejb 基础知识 (1) 无状态会话bean 不保存客户机的会话状态 优点:使用小量的实例即可满足大量的客户。每个实例都没
全栈程序员站长
2022/11/19
1.4K0
[数据库连接池二]Java数据库连接池--C3P0和JDNI.
前言: 上一篇文章中讲了DBCP的用法以及实现原理, 这一篇再来说下C3P0和JDNI的用法.  1.1、C3P0数据源   C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。C3P0数据源在项目开发中使用得比较多。   c3p0与dbcp区别 dbcp没有自动回收空闲连接的功能 c3p0有自动回收空闲连接功能 1.2、在应用程序中加入C3P0连接池   1.导入相关jar包        
一枝花算不算浪漫
2018/05/18
1.2K0
相关推荐
tomcat5配置常见数据库连接池的例子.
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档