JNDI和JDBC的区别
最近也是遇见了JNDI这个概念,查了一下,网上的说法太官方,所以参考下一位老哥的博客总结下
JDBC
看到最多的就是,Java Database Connectivity (JDBC)是一个标准的Java API,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。
通俗的讲就是JDBC用来连接数据库和执行SQL语句,但是它最大的特点是通过java程序去找数据库驱动,然后来连接数据库。是java亲自去连数据库。
JNDI
JNDI(Java Name Directory Interface,Java命名和目录接口),它不仅仅是进行数据库定位的,它是给当前应用服务器所管理的所有资源一个唯一的标识,包括数据库,网页,文件,连接池等等。
JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。
JNDI主要有两部分组成:应用程序编程接口和服务供应商接口。应用程序编程接口提供了Java应用程序访问各种命名和目录服务的功能,服务供应商接口提供了任意一种服务的供应商使用的功能。
代码示例:
1 try{
2
3 Context cntxt = new InitialContext();
4
5 DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt");
6
7 }
8
9 catch(NamingException ne){
10
11 ...
12
13 }
通俗的讲,JNDI不单单是用来连接数据库的,它是通过命名服务来找到数据库并返回数据库连接,当然JNDI还可以管理当前应用服务器上的其他资源,如网页,文件等,它用来连接数据库时和JDBC最大的区别就是它是通过应用服务器配置(如Tomcat)的配置文件context.xml来找数据库驱动的,其次就是JDBC连接能承受的同时请求数太低了,JNDI连接池连接与之相比会好很多。
总结:
1.请求资源的主动性不一样。JDBC是通过java程序主动去连接数据库获得连接,而JNDI是通过请求命名服务器返回数据库连接。
2.功能范围不一样。JDBC只能用来做一件事那就是连接数据库,而命名JNDI除了能和JDBC做同样的事以外还能管理当前应用服务器上的其他资源,如网页,文件等
3.请求连接数不通。JNDI连接池数高于JDBC
转载:https://blog.csdn.net/ibigboy/article/details/84309064
JNDI和JDBC的区别的更多相关文章
- JNDI 和JDBC的区别
1.JNDI 和JDBC的区别和联系.两者都是API,是一个标准.并不是什么产品或方法.JDBC 全称:Java Database Connectivity 以一种统一的方式来对各种各样的数据库进行存 ...
- JNDI和JDBC的区别和联系及其使用方法
一.JNDI 和JDBC的区别和联系 两者都是API,是连接数据库的标准.并不是什么产品或方法. 二.JDBC 全称:Java Database Connectivity 以一种统一的方式来对各种各样 ...
- JNDI和JDBC的区别-个人理解
网上关于JNDI和JDBC的定义有很多,但是都很官方不容易理解,下面是我最近查阅资料得出的心得体会.希望对你在理解上有一点点的帮助,说的不对的请指正哦. JDBC: 看到最多的就是 Java Data ...
- 使用JNDI或JDBC连接数据库
一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下: <H ...
- 简述 Hibernate 和 JDBC 的区别、优缺点
1.hibernate是一个开源的.采用面向对象的思想实现ORM映射框架,它对jdbc进行了一层封装,对于数据库的连接.关闭.数据的持久化(增删改查).事务的管理都进行了封装,使得程序开发的时候可以用 ...
- tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】
tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...
- JDBC、JNDI和DBCP的区别
JDBC:Java DataBase Connectivity,java连接数据库和执行SQL语句的API. 数据源:Data Source.就是将IP.数据库.用户名.密码封装起来对外只提供一个JN ...
- JDBC ODBC区别
一.JDBC(Java DataBase Connectivity standard) 1.JDBC,它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库. 2. 驱动程序(JDBC ...
- jndi 与 jdbc
现在开发中经常用到数据库的两种配置1 jdbc2 jndi 一般开发环境都会使用jdbc环境,自己弄配置方便.但是测试和生产环境一般都使用jndi方式.原因有:1 使用jndi方式配置,数据库的 ...
随机推荐
- Tableau如何绘制双柱折线组合图
一.数据准备如下所示 二.将日期拖拽至列,销售额拖拽至行,结果如下所示 三.右键日期排序-选择手动排序 四.将指标拖拽至标记卡上 五.创建计算字段增长率 SUM(IF YEAR(日期)=2017 th ...
- 「Spark从精通到重新入门(二)」Spark中不可不知的动态资源分配
前言 资源是影响 Spark 应用执行效率的一个重要因素.Spark 应用中真正执行 task 的组件是 Executor,可以通过spark.executor.instances 指定 Spark ...
- linux more 命令的基础实现。
more :分页显示文件的内容 输入 more filename 会显示文件第一屏的内容,而且会有反白的 more 提升文件的百分比.空格=下一页,q=推出,h=连接帮助 more 的用法 1. mo ...
- 筛选Table.SelectRows-日期与时间(Power Query 之 M 语言)
数据源: 包含日期与时间的任意数据 目标: 对日期与时间进行筛选 M公式: = Table.SelectRows( 表,筛选条件) 筛选条件: 等于:each [日期列] = #date(年,月,日) ...
- CF1433B Yet Another Bookshelf 题解
Content 在一个仅有 \(0,1\) 这两个数的数列上,每次可以选择一段全为1的连续区间将其左移 \(1\) 或者右移 \(1\).现给出 \(t\) 次询问,每次询问给出一个长度为 \(n\) ...
- libevent源码学习(11):超时管理之min_heap
目录min_heap的定义向min_heap中添加eventmin_heap中event的激活以下源码均基于libevent-2.0.21-stable. 在前文中,分析了小顶堆min_h ...
- Tomcat高级特性及性能调优
Tomcat对Https的支持 HTTPS简介 Https,是以安全为目标的Http通道,在Http的基础上通过传输加密和身份认证保证了传输的安全性.HTTPS在HTTP的基础上加入SSL层,HTTP ...
- 【LeetCode】802. Find Eventual Safe States 解题报告(Python)
[LeetCode]802. Find Eventual Safe States 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemi ...
- 【LeetCode】833. Find And Replace in String 解题报告(Python)
[LeetCode]833. Find And Replace in String 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu ...
- mac学习Python第二天:开发工具安装、编程方式、中文编码、syntaxError语法错误、注释、语法格式
一.python集成开发工具Visual Studio Code安装配置 1.官网下载安装VSCode 官网地址 https://code.visualstudio.com/下载软件包 VSCode ...