22

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

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

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

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

4

2 回答 2

27

嗯,这是两个不同的东西。

JDBC 是 Java 数据库连接 API,而 JNDI 是 Java 命名和目录接口 API。

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

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

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

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

于 2013-03-28T08:20:43.003 回答
6

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

于 2013-03-28T08:19:55.680 回答