我需要知道我对上述内容的理解是否正确。
在连接池中,您可以使用 java.sql.Datasource 设置多个连接。
在 jdbc 中,我们直接指定连接 url 和 oracle.jdbc.driver.OracleDriver 并且它始终是一个连接,另一个请求必须等待连接完成处理。
使用 JNDI,它类似于直接 jdbc,我们通过名称引用 jdbc 设置,这样我们就可以在应用程序服务器中指定连接 url 和其他设置,而不是将它们绑定到应用程序,对吧?
嗯,这是两个不同的东西。
JDBC 是 Java 数据库连接 API,而 JNDI 是 Java 命名和目录接口 API。
这里的主要内容是,在 JNDI 目录中,您实际上存储的是 JDBC 数据源,因此,您只是使用 JDBC 通过 JNDI 查找来获取连接。
简而言之:JDBC 是数据库领域,JNDI 允许您将对象存储在可以是本地、远程的虚拟上下文(目录)中(实现细节通常无关紧要)。
您可以通过名称访问此上下文,获取存储的对象,这有助于在不同模块之间共享内容。
应用程序服务器通常具有用于在不同应用程序之间共享全局对象的 JNDI 上下文,连接池恰好是为什么通过 JNDI 共享是好的(定义 1 个连接池,在多个 web 应用程序之间共享)的最明显示例之一。