jndi和jdbc区别?
一、jndi和jdbc区别
jdbc
JavaDatabaseConnectivity(JDBC)是一个标准的JavaAPI,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。
通俗的讲就是JDBC用来连接数据库和执行SQL语句,但是它最大的特点是通过java程序去找数据库驱动,然后来连接数据库。是java亲自去连数据库。
JNDI(JavaNameDirectoryInterface,Java命名和目录接口),它不仅仅是进行数据库定位的,它是给当前应用服务器所管理的所有资源一个少数的标识,包括数据库,网页,文件,连接池等等。
Jndi
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连接池连接与之相比会好很多。
延伸阅读:
二、Redisson分布式锁的实现原理
实现原理:
1、首先Redisson会尝试进行加锁,加锁的原理也是使用类似Redis的setnx命令原子的加锁,加锁成功的话其内部会开启一个子线程
2、子线程主要负责监听,其实就是一个定时器,定时监听主线程是否还持有锁,持有则将锁的时间延时,否则结束线程
3、如果加锁失败则自旋不断尝试加锁
4、执行完代码主线程主动释放锁
以上就是关于jndi和jdbc区别的内容希望对大家有帮助。

相关推荐HOT
更多>>
为什么Java是解释型语言而Python不是?
一、Java是解释型语言而Python不是的原因Java和Python都是非常流行的编程语言,但它们的编译方式不同。Java是一种解释型语言,而Python则是一种...详情>>
2023-10-19 22:17:12
axios和ajax区别?
一、axios和ajax区别axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。简单来说ajax技术实现了网页的局部数据刷新,a...详情>>
2023-10-19 19:35:00
jndi和jdbc区别?
一、jndi和jdbc区别jdbcJavaDatabaseConnectivity(JDBC)是一个标准的JavaAPI,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库...详情>>
2023-10-19 16:29:05
Java和HTML有什么区别和联系?
一、Java和HTML的区别和联系区别Java是一门编程语言,一直在不断的发展更新目前JDK14,对于处于信息高速发达的今天,Java技术已经无处不在、各...详情>>
2023-10-19 14:41:28