文档详情

EJB数据源和连接池.doc

发布:2017-02-03约1.53万字共13页下载文档
文本预览下载声明
连接池和数据源 知识点 连接池和数据源的基本概念 配置Tomcat数据源 配置struts数据源 一.概述: 在实际项目的开发中,特别是web应用程序中,如Jsp,Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据方请求必须建立连接,存取数据,关闭连接等步骤,而数据库连接是一种非常昂贵的资源,频繁的建立连接,关闭连接必定是数据库性能降低,再者,JDBC直接连接数据库的方式还存在数据库连接泄漏问题。使用数据库连接池技术是解决上述问题的最常用的方法,在许多应用服务器(如 websphere, weblogic ,jBoss)中都提供了这种技术. 二.连接池实现的原理: 就是在应用启动时建立一定数量的数据库连接,并将这些数据库连接作为对象存储在一个容器对象中。而程序中所有的数据库请求访问都可以共享这些连接,这样,通过复用这些已经建立的数据库连接,不必在每次访问数据库时都重新建立连接,极大的节省了系统资源和时间。另外,为了回收并重新使用那些没有及时关闭的数据库连接,连接池都提供了一种超时回收机制。也就是当数据库的连接在指定的时间内没有活动,连接池就把这些连接重新放到可以使用的队列。新的连接请求到来时便可以再次使用这些连接。这种超时回收连接的机制可以克服数据库链接泄漏的问题。 三.几个常见的开源的数据库连接池 DBCP连接池 它是一个依赖于Jakata commons-pool对象池机制的数据库连接池,DBCP可以直 接在应用程序中使用。 官方下载网址:/commons/dbcp/ 将下载後的文件解压获得三个jar文件 commons-dbcp-1.2.1.jar, commons-pool-1.3.jar, commons-collections-3.2.jar 将上述三个.jar文件保存到项目的WEB-INF\lib下,即加入到CLASSPATH中。 使用方法 直接在程序中使用 首先要创建BasicDataSource,然后通过它来获得数据库连接对象Connection Properties p=new Properties(); 1.4.2. 通过tomcat使用DBCP数据源 需要修改tomcat的server.xml文件或者配置位于tomcat文件夹下 conf\Catelina\local文件夹下的 “项目名称.xml”文件 Class.forName(“xool.ProxoolDriver”);//加载驱动程序 Connection conn=DriverManager.getConnection(proxool.) 三.在 Tomcat上配置连接池 与配置数据源基本相同。唯一需要的就是在server.xml文件中的ResourceParams标签 之间添加几个与连接池相关的参数设置。 配置连接池时需要添加的配置代码段: !—回收被遗弃的(一般是忘了释放的)数据库链接到连接池中( parameter nameremoveAbandoned/name valuetrue/value /parameter !—数据库链接超过60秒不用将视为被遗弃而回收到连接池中( parameter nameremoveAbandonedTimeout/name value60/value /parameter !—将被遗弃的数据库链接的回收记入日至( parameter namelogAbandoned/name valuetrue/value /parameter Tomcat中的数据源 数据源是JDBC2.0种引入的一个概念。并且在javax.sql包中定义了接口DataSource来描述这个概念。在数据库的JDBC驱动程序中有该接口的实现类。例如: mysqlconnector-java-3.1.10-ben.jar中的com.mysql.jdbc.jdbc2.optional.MysqlDataSource类就实现了DataSource接口。 在程序中使用数据源有两种方式:一种是在程序中直接创建类的对象,该对象实现了JDBC驱动程序中的DataSource接口.并使用该对象获得数据库连接;另一种方法是使用JNDI注册数据源,然后在程序中查询JNDI服务中的数据源,这样用户就只需要提供一个逻辑名称,而不是数据库登录的具体细节。 配置数据源 要使用第二种形式的JNDI数据源,必须首先进行配置数据源的 JNDI命名服务。由于Tomcat提供了一个称为DBCP(Database Connection Pool)的数据源实现,所以可以在server.xml文件中进行数据源的配置即可。 安装DBCP DBCP依赖于以下几个apache jakarta项目的几个公用包: Co
显示全部
相似文档