2013-03-28 108 views
13

我需要知道我的理解对以上是正确的,差异连接池,JDBC和JNDI

在连接池设置与使用java.sql.Datasource的多个连接。

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

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

回答

17

好吧,这是两回事。

JDBC是java数据库API,而JNDI是java的命名和目录Interface API。

这里主要的一点是,在JNDI目录中实际存储的是JDBC数据源,因此,您只需使用JDBC并通过JNDI查找获取Connection。简而言之:JDBC是数据库领域,JNDI允许您将对象存储在可以是本地,远程(实现细节通常不重要)的虚拟上下文(目录)中。

您通过名称访问此上下文,获取存储的对象,很好地在不同的模块之间共享。

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

3

我知道所有的首字母缩写词艰巨当你第一次学习Java的,但习惯了就好了,花了很多时间阅读。尤其是官来自Java/Oracle的资源