我需要知道我对上述内容的理解是否正确。
在连接池中,您使用java.sql.Datasource设置多个连接。
在jdbc中,我们直接指定连接url和oracle.jdbc.driver.OracleDriver,它始终是一个连接,其中另一个请求必须等到连接完成处理。
使用JNDI,它类似于直接jdbc,我们通过名称引用jdbc设置,这样我们就可以在应用服务器中指定连接url和其他设置,而不是将它们绑定到应用程序,对吧?
答案 0 :(得分:20)
这些是两件不同的事情。
JDBC是Java数据库连接API,而JNDI是Java命名和目录接口API。
这里的主要内容是在JNDI目录中实际存储JDBC DataSource,因此,您只是使用JDBC通过JNDI查找获取Connection。
简而言之:JDBC是数据库领域,JNDI允许您将对象存储在可以是本地远程的虚拟上下文(目录)中(实现细节通常无关紧要)。
通过名称访问此上下文,获取存储的对象,可以在不同模块之间共享内容。
Application Server通常有一个JNDI Context用于在不同的应用程序之间共享全局对象,Connection Poolers恰好是为什么通过JNDI共享是好的最明显的例子之一(定义1个连接pooler,在几个webapps之间共享)。
答案 1 :(得分:4)
我知道你第一次学习Java时所有的缩略词都是令人生畏的,但是要习惯它,花很多时间阅读......尤其是来自Java / Oracle的官方资源