连接池、jdbc 和 jndi 的差异

2022-09-01 23:10:16

我需要知道我对上述内容的理解是否正确。

在连接池中,使用 java.sql.Datasource 设置多个连接。

在jdbc中,我们直接指定连接网址和oracle.jdbc.driver.OracleDriver,它始终是一个连接,另一个请求必须等到连接完成处理。

使用JNDI,它类似于直接jdbc,我们通过名称引用jdbc设置,以便我们可以在应用程序服务器中指定连接URL和其他设置,而不是将它们绑定到应用程序,对吧?


答案 1

嗯,这是两回事。

JDBC 是 Java Database Connectivity API,而 JNDI 是 Java Naming and Directory Interface API。

这里最主要的是,在JNDI目录中,您实际上存储了一个JDBC数据源,因此,您只需使用JDBC通过JNDI查找来获取连接即可。

简而言之:JDBC是数据库领域,JNDI允许您将对象存储在虚拟上下文(目录)中,该上下文可以是本地的,远程的(实现细节通常无关紧要)。

您可以通过名称访问此上下文,获取存储对象,这有利于在不同模块之间共享内容。

应用程序服务器通常具有用于在不同应用程序之间共享全局对象的 JNDI 上下文,连接池程序恰好是说明为什么通过 JNDI 共享是好的最明显示例之一(定义 1 个连接池程序,在多个 Web 应用程序之间共享)。


答案 2

我知道当你第一次学习Java时,所有的首字母缩略词都是令人生畏的,但是习惯了它,花很多时间阅读..特别是来自Java/Oracle的官方资源


推荐