网上关于JNDI和JDBC的定义有很多,但是都很官方不容易理解,下面是我最近查阅资料得出的心得体会。希望对你在理解上有一点点的帮助,说的不对的请指正哦。

JDBC:

看到最多的就是

Java Database Connectivity (JDBC)是一个标准的Java API,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。

通俗的讲就是JDBC用来连接数据库和执行SQL语句,但是它最大的特点是通过java程序去找数据库驱动,然后来连接数据库。是java亲自去连数据库。

JNDI:

然而

JNDI(Java Name Directory Interface,Java命名和目录接口),它不仅仅是进行数据库定位的,它是给当前应用服务器所管理的所有资源一个唯一的标识,包括数据库,网页,文件,连接池等等。

JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。

JNDI主要有两部分组成:应用程序编程接口和服务供应商接口。应用程序编程接口提供了Java应用程序访问各种命名和目录服务的功能,服务供应商接口提供了任意一种服务的供应商使用的功能。

代码示例:

try{
Context cntxt = new InitialContext();
DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt");
}catch(NamingException ne){
...
}

通俗的讲,JNDI不单单是用来连接数据库的,它是通过命名服务来找到数据库并返回数据库连接,当然JNDI还可以管理当前应用服务器上的其他资源,如网页,文件等,它用来连接数据库时和JDBC最大的区别就是它是通过应用服务器配置(如Tomcat)的配置文件context.xml来找数据库驱动的,其次就是JDBC连接能承受的同时请求数太低了,JNDI连接池连接与之相比会好很多。

总结:

  1. 请求资源的主动性不一样。JDBC是通过java程序主动去连接数据库获得连接,而JNDI是通过请求命名服务器返回数据库连接。
  2. 功能范围不一样。JDBC只能用来做一件事那就是连接数据库,而命名JNDI除了能和JDBC做同样的事以外还能管理当前应用服务器上的其他资源,如网页,文件等。
  3. 请求连接数不通。JNDI连接池数高于JDBC。

以上是通过最近对JDBC和JNDI的学习得出的心得体会,有不对的地方欢迎来指正哦

JNDI和JDBC的区别-个人理解的更多相关文章

  1. JNDI 和JDBC的区别

    1.JNDI 和JDBC的区别和联系.两者都是API,是一个标准.并不是什么产品或方法.JDBC 全称:Java Database Connectivity 以一种统一的方式来对各种各样的数据库进行存 ...

  2. JNDI和JDBC的区别和联系及其使用方法

    一.JNDI 和JDBC的区别和联系 两者都是API,是连接数据库的标准.并不是什么产品或方法. 二.JDBC 全称:Java Database Connectivity 以一种统一的方式来对各种各样 ...

  3. JNDI和JDBC的区别

    最近也是遇见了JNDI这个概念,查了一下,网上的说法太官方,所以参考下一位老哥的博客总结下 JDBC 看到最多的就是,Java Database Connectivity (JDBC)是一个标准的Ja ...

  4. 使用JNDI或JDBC连接数据库

    一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下: <H ...

  5. 简述 Hibernate 和 JDBC 的区别、优缺点

    1.hibernate是一个开源的.采用面向对象的思想实现ORM映射框架,它对jdbc进行了一层封装,对于数据库的连接.关闭.数据的持久化(增删改查).事务的管理都进行了封装,使得程序开发的时候可以用 ...

  6. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  7. 关于DDL、DML和DCL的区别与理解

    2017年5月31日,天气阴.近期事情颇多,心情比较沉重. 端午刚过,早上上课,很多同学还处在端午的疲惫状态中没有回过神来,当然我也不例外.端午奔波三天,加上毕设的事情,可以说身心俱疲.状态不佳,整理 ...

  8. Cookies和Session的区别和理解

    Cookies和Session的区别和理解 cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Man ...

  9. JDBC、JNDI和DBCP的区别

    JDBC:Java DataBase Connectivity,java连接数据库和执行SQL语句的API. 数据源:Data Source.就是将IP.数据库.用户名.密码封装起来对外只提供一个JN ...

随机推荐

  1. 第十六届浙江大学宁波理工学院程序设计大赛 E 雷顿女士与平衡树(并查集)

    题意 链接:https://ac.nowcoder.com/acm/contest/2995/E来源:牛客网 卡特莉正在爬树,此时她又在树梢发现了一个谜题,为了不令她分心以至于发生意外,请你帮她解决这 ...

  2. io流追加到一个文件中信息比如日志

    package com.yh.day02.arrays; import java.io.File;import java.io.FileInputStream;import java.io.FileN ...

  3. vue路由传参和获取参数

    参考链接 https://router.vuejs.org/zh/guide/essentials/passing-props.html#%E5%B8%83%E5%B0%94%E6%A8%A1%E5% ...

  4. shell 中长命令的换行处理

    考察下面的脚本: emcc -o ./dist/test.html --shell-file ./tmp.html --source-map-base dist -O3 -g4 --source-ma ...

  5. Java学习 1.3——Java开发环境的搭建:安装JDK,配置环境变量

    了解了基本的Java知识后,就需要开始搭建开发环境了. 一,安装JDK JDK1.8下载地址 接受协议,选择选择自己的系统,我的是Windows64位: 点进去后会让你登录Oracle账号,没有就创建 ...

  6. 怎么将CAD转PNG格式?这两种方法值得收藏

    在从事相关CAD工作的小伙伴们都知道,CAD中不光需要绘制各种各样的图纸,还需要根据工作的需要来进行图纸格式的转换工作.那有的时候就需要将CAD转换成PNG格式的图片进行使用.那怎么将CAD转PNG格 ...

  7. ArcGIS Desktop中为图像设置成不显示背景色

    加载的栅格图层在arcgis中显示有黑色背景 方法一:如果有矢量边界的话,直接用矢量边界把黑色背景裁剪掉即可. 方法二: 如果是RGB三色: 这个只是不显示,并不改变原有的值 如果是值: 附:为影像数 ...

  8. JS 验证

    JS 验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML ...

  9. 一文解读MVC/MVP/MVVM (转)

    这篇文章对目前 GUI 应用中的 MVC.MVP 和 MVVM 架构模式进行详细地介绍. MVC 在整个 GUI 编程领域,MVC 已经拥有将近 50 年的历史了.早在几十年前,Smalltalk-7 ...

  10. 【一】Gradle 初识

    1.Gradle和Maven的对比 gradle 使用groovy语言,可以进行逻辑判断,maven基于xml,无法进行逻辑判断. gradle 可以在一个项目中,根据需求,生成2个不同的jar, m ...