[img][/img]原理:
在DataSource中事先建立多个数据库连接,保存在数据库连接池中。当程序访问数据库时,只用从连接池中取空闲状态的数据库连接即可,访问结束,销毁资源,数据库连接重新回到连接池,这与每次去直接访问数据库相比,会节省大量时间和资源。
JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个 API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括 LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。可以把它理解为一种将对象和名字捆绑的技术,对象工厂负责生产出对象,这些对象都和唯一的名字绑在一起,外部资源可以通过名字获得某对象的引用。
在javax.naming的包包中提供Context接口,提供了两个很好用的方法:
<1> void bind( String name , Object object )
将名称绑定到对象。所有中间上下文和目标上下文(由该名称最终原子组件以外的其他所有组件指定)都必须已经存在。
<2>Object lookup( String name )
检索指定的对象。如果 name为空,则返回此上下文的一个新实例(该实例表示与此上下文相同的命名上下文,但其环境可以独立地进行修改,而且可以并发访问)。
外部资源访问对象工厂中的工程图:
例:
=================将以下代码段添加到server.xml中的<Host>中============
<!-- configure DataSource. Add the following code into server.xml -->
<Context path="/bookstore" docBase="bookstore" debug="0"
reloadable="true" >
<!-- 数据源名称 -->
<Resource name="jdbc/BookDB"
auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/BookDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<!-- 活动状态最大连接数 -->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<!-- 空闲状态数据库连接最大数 -->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<!-- 数据库处于空闲状态的最长时间 -->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<!-- 指定连接数据库的用户名及密码 -->
<parameter>
<name>username</name>
<value>dbuser</value>
</parameter>
<parameter>
<name>password</name>
<value>1234</value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<!-- 指定JDBC驱动 -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<!-- 指定连接数据库的URL -->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/BookDB?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
运行机制:
- 大小: 10.4 KB
分享到:
相关推荐
简单我tomcat5.0中的JNDI应用
JNDI配置原理详解 JNDI配置原理详解.doc
jndi入门学习资料,介绍jndi基本原理,安装和使用,基本配置
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC...1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
这是我平时自己总结的有关做开发时候遇到的JNDI配置相关的问题,不算多,拿出来分享一下
JNDI原理及详细解读,讲解非常详细,可下载浏览。
JNDI数据源【步骤图解】
本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大数,就需要等待其他人释放后再操作。 ...
JNDI参考资料,这里讲述了JNDI的简介,原理,以及连接池等技术
封捷_ModelDriven和Preparable拦截器 ...JNDI原理_张晓飞 Servlet_封捷 Web基础架构:负载均衡和LVS_张晓飞 Web应用环境搭建__封捷 XML简介_封捷 版本控制器[上]服务器端安装与配置__封捷 缓存技术浅谈_张晓飞
JNDI DirContext工厂的工作原理非常类似于JDBC DataSource,返回了现成的DirContext对象。
Java中数据库连接池原理机制的详细讲解 JDBC,JNDI
c3p0配置数据库连接池、数据库连接池 已经测试通过,可以提供给新入门的朋友学习之用,如果是要结合spring就不用下载了,网上其他地方应该很多资料,简单修改一下,原理都是一样的。
在分析数据库连接池工作原理的基础上,给出了Tomcat服务器数据库连接池的配置实例,以及在JSP页面中使用此连接池进行数据库访问的Java代码。在大型Web站点的开发中,使用数据库连接池技术是必要的,也是可取的。
J2EE组件使用JNDI相互查找和查找所需要的资源,如JDBC和JMS连接。JMS这样的技术鼓励松散耦合,允许灵活地为工作流程建模、容易分配处理任务、可伸缩性和容错性。很多J2SE服务器应用程序也可以从这些技术和原理中受益...
在这个主题中,我们将详细讨论 Weblogic 连接池配置数据库断掉重连的问题,包括连接池配置的基本概念、断掉重连机制的原理、配置参数的解释等。 一、连接池配置的基本概念 在 Weblogic 中,连接池配置是指将多个...
第一部分 集群原理 3 1. WEB Loadbalance 3 2. HTTP Session复制 3 3. JNDI 3 4. EJB 3 第二部分 集群物理实现 4 1. 物理架构 4 2. 机器网址分配 4 3. 软件环境 4 第三部分 集群配置 5 1. Apache 配置 5 2. Tomcat...
2.1因为客户端需要通过JNDI查找EJB,那么JNDI 是什么 2.2 Stateless Session Beans(无状态bean)开发 2.3 Stateless Session Bean与Stateful Session Bean的区三别 2.4 Session Bean的生命周期 3.消息驱动Bean ...
WED工作原理、HTTP协议、Servlet、GET和POST提交方式的优缺点、MVC设计、连接池、JNDI、自定义异常、Log4j、EL 和 JSTL、Wed service