当前位置: 代码迷 >> 综合 >> JNDI、JDBC、Connection Pool的关系
  详细解决方案

JNDI、JDBC、Connection Pool的关系

热度:91   发布时间:2023-12-21 02:50:28.0

JDBC:提供程序和数据源的连接,并能通过API获取和修改数据库中的数据,操纵数据库。减少将一些数据库连接信息写死在代码内。Connection交由Container去控制,省去了管理Connection的工作。

Connection Pool:JDBC就提供连接池中的一个子集,当程序请求连接变得越来越多的时,为了省去每次都要连接断开这种重复的工作。connection pool就出现了,它通过JDBC创建几个连接实例,放到池子里,当程序请求的时候从池子中取出一个就好了。

JNDI(java Naming and Directory Interface)提供应用程序所需要资源上命名与目录的服务,它提供了一个接口,让用户在不知道资源存放位置的情况系,取得该资源。

 

java命名和目录服务接口:

应用程序必须能在不知道外部信息是如何命名和组织在其运行环境中的情况下来存取资源和外部信息,JNDI命名上下文提供了这中能力,在应用程序启动的时候就可以建立一部分连接。JNDI可以理解成一个水池的门牌,连接池就相当于这个水池。应用要取到要访问的数据库时,通过找到JNDI,然后在通过连接池和数据库建立的连接来访问。

注意:JNDI是和WEB程序、连接池相关的。不能单独使用。

 

具体解释:

一个Data Source对象代表了一个真正的数据来源,当一个Data Source对象注册到名字服务器中,应用程序就可以通过名字获取Data Source对象,并用它来产生一个与data Source代表的数据源连接了。

关于数据源的信息和如何来定位数据源,例如数据库服务器的名字,在哪台机器上,端口号等等,都包含在DataSource对象的属性里面去了。这样,对应用程序的设计来说是更方便了,因为并不需要硬性的把驱动的名字写死到程序里面去。通常驱动名字中都包含了驱动提供商的名字,而在DriverManager类中通常是这么做的。如果数据源要移植到另一个数据库驱动中,代码也很容易做修改。所需要做的修改只是更改DataSource的相关的属性。而使用DataSource对象的代码不需要做任何改动。

 由系统管理员或者有相应权限的人来配置DataSource对象。配置DataSource,包括设定DataSource的属性,然后将它注册到JNDI名字服务中去。在注册DataSource对象的的过程中,系统管理员需要把DataSource对象和一个逻辑名字关联起来。名字可以是任意的,通常取成能代表数据源并且容易记住的名字。在下面的例子中,名字起为:InventoryDB,按照惯例,逻辑名字通常都在jdbc的子上下文中。这样,逻辑名字的全名就是:jdbc/ InventoryDB。

一旦配置好了数据源对象,应用程序设计者就可以用它来产生一个与数据源的连接。

 

 

 

 

  相关解决方案