(6)数据源(DataSource)的作用
它相当于客户端程序和连接池的中介,想要获得连接池中的连接对象,必须建立一个与该连接池相应的数据源,然后通过该数据源获得连接。
2、JNDI(JA NAMING AND DIRECTORY INTERFACE---Java命名和目录接口)
(1)JNDI简介
分布式计算环境通常使用命名和目录服务来获取共享的组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。它是一个为JA应用程序提供命名服务的应用程序编程接口(API)。
命名服务提供了一种为对象命名的机制,这样你就可以在无需知道对象位置的情况下获取和使用对象。只要该对象在命名服务器上注册过,且你必须知道命名服务器的地址和该对象在命名服务器上注册的JNDI名。就可以找到该对象,获得其引用,从而运用它提供的服务。
命名服务提供名称—对象的映射。目录服务提供有关对象的信息,并提供定位这些对象所需的搜索工具。
Java命名和目录接口或JNDI提供了一个用于访问不同的命名和目录服务的公共接口(JA API)。运用一个命名服务来查找与一个特定名字相关的一个对象,JDBC可以用JNDI来访问一个关系。
(2)获得JNDI的初始环境
在JNDI中,在目录结构中的每一个结点称为Context。每一个JNDI名字都是相对于Context的。这里没有绝对名字的概念存在。对一个应用来说,它可以通过使用InitialContext类来得到其第一个Context:
Contextctx = new InitialContext ();
应用可以通过这个初始化的Context经由这个目录树来定位它所需要的资源或对象。InitialContext在网页应用程序初始化时被设置,用来支持网页应用程序组件。所有的入口和资源都放在JNDI命名空间里的java:comp/env段里。
(3)查找已绑定的对象
用ctx..lookup(String name);根据name找对象
例:
import javax.naming.*;
public class TestJNDI
{
public static void main(String[] args)
{
try
{
Context ctx=new InitialContext();
Object object=ctx.lookup(“JNDIName”);//根据JNDI名查找绑定的对象
String str=(String) object;//强制转换
}
catch(NamingException e)
{e.printStackTrace();
}
catch(ClassCastException e)
{e.printStackTrace();
}
}
}
3、连接池技术
(1)传统的Web编程模式
l在主程序(如Servlet、Beans)中建立连接。
l进行SQL操作,取出数据。
l断开连接。
使用这种模式开发,存在很多问题。
l首先,我们要为每一次WEB请求(例如察看某一篇文章的内容)建立一次连接,对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次(想想全世界的网友都有可能在您的网页上查找资料),在这种情况下,系统开销是相当大的。事实上,在一个基于的WEB系统中,建立连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。
l其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致系统中的内存泄露,最终我们将不得不重启。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27620-8.html
余额宝300