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