tomcat + JNDI 数据源的简单示例

Posted ynhmonster

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat + JNDI 数据源的简单示例相关的知识,希望对你有一定的参考价值。

今天是实习生入职第二天,分配了一个任务,写一个tomcat下配置JNDI数据源的说明文档,因为之前没接触过(一直使用的是C3P0连接池),所以踩了很多坑,现在总结出一个简单的小示例,以作记录

首先说,JDBC(Java DataBase Connectivity)与JNDI(Java Naming and Directory Interface)的区别:

JDBC以一种统一的方式来对各种各样的数据库进行存取,为开发人员隐藏了不同数据库的不同特性,开发人员可以通过一些简单的配置就可以直接调用连接而不用去处理数据库连接的细节,也可以采用数据库连接缓冲池(Connect Pool)优化数据库连接。

JNDI被用于执行名字和目录服务。在JNDI中,目录结构的每一个结点称为Context。每一个JNDI的名字都是相对于Context的。应用可以通过这个初始化的Context来定位它所需要的资源和对象。

JNDI相对于JDBC来说是它的灵活性,因为如果使用JDBC,在使用的过程中,如果需要修改数据库服务器,就需要修改相对应的用户名和口令,由此引发对应的URL也需要修改,而这些修改都需要在配置文件中进行配置,而一旦修改了配置文件就需要重新启动项目来使新的配置生效;还有一个问题就是如果改用其他的数据库产品,对应的JAR包都需要改变,这样来说JDBC显然使很难满足这些需求的。

JNDI只需要在配置文件中提前将可能用到的数据库的配置信息,配置到配置文件中(相应的JAR包也需要放在Tomcat目录下的lib文件夹下),然后交友J2EE容器来配置和管理,开发者只需要对这些配置和管理进行引用即可,相对来说更加灵活。还有一个好处就是JDBC的配置文件和程序的文件使放在一起的耦合性较高,而JNDI的配置文件是放在J2EE容器中的,大大降低了耦合性,相对来说独立性更高。

具体配置如下:

1、配置数据源

  在项目的webapps目录文件下的META_INF文件夹下创建一个名为context.xml文件,用来配置资源

  技术分享图片

2、在程序中引用数据源

技术分享图片

3、简单的Jsp页面(因为数据库的数据源存放在tomcat容器中,所以必须启动tomcat容器才可以进行测试,一下方法是最简单的测试小Demo)

技术分享图片

4、测试结果截图

Jsp页面:

技术分享图片

后台输出 :

false

 

至此,Demo完成

 

注:需要的JAR包

jstl-1.2.jar

standard-1.1.2.jar

这俩是放在WEB-INF文件夹下的lib中(需要add to build path)

以上是关于tomcat + JNDI 数据源的简单示例的主要内容,如果未能解决你的问题,请参考以下文章

grails tomcat jndi的最佳mysql数据源属性

怎样配置tomcat的jndi数据库连接?

在tomcat中绑定JNDI数据源?

在 Tomcat 中调用 JNDI 数据源的正确方法

Spring Boot - 外部 Tomcat - JNDI 数据源

Tomcat 7.0 for Hibernate 中的数据源 JNDI 配置