连接池,jdbc和jndi的差异

时间:2013-03-28 08:16:08

标签: java jdbc jndi

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

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

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

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

2 个答案:

答案 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的官方资源