DBCP组件概述

许多Apache的项目都支持与关系型数据库进行交互。为每个用户都创建一个连接是一项非常耗时的工作(通常情况下,需要花费几秒中),而为了执行数据库的事务处理可能还需要花费几毫秒。对于一个对外公开访问的互联网应用来说,为每一个用户都开启一个连接是不现实的,因为在任意一个时刻,可能都有大量的用户需要进行访问。因此,开发者希望让当前所有的用户都使用一个连接共享池来进行数据库的访问。一般情况下,在任何时刻请求访问的用户的占比都是很小的(相对于所有的活跃用户来说),而只有在处理请求的时候数据库的连接才是必要的。然后,这个应用登录DBMS,在其内部处理用户的需求。

现在市场上已经有几种数据库连接池可供用户选择,它们有的是Apache的产品,有的不是。Commons包是ASF证书下一个功能丰富的工具包,该包旨在平衡创建和维持连接的之间的效率。

包commons-dbcp 2需要使用底层的对象池机制,该机制需要由包commons-pool 2来提供。

DBCP现在有三个不同的版本,分别对应着不同版本的JDBC。下面是它们的对应关系:

•  DBCP 2只能在Java 7下编译和使用(JDBC 4.1)

•  DBCP 1.4只能在Java 6下编译和使用(JDBC 4)

•  DBCP 1.3只能在Java 1.4-5下编译和使用(JDBC 3)

DBCP 2是基于Commons Pool 2的,和DBCP 1.x相比,其对JMX的支持更好,而且还添加了一些新特性。如果用户想要升级到2.x,需要注意java包的名字已经变了,且Maven也需要进行相应的调整,应为DBCP 2.x与DBCP 1.x是不兼容的。用户还应该清楚的一点是一些配置项(例如maxActive到maxTotal)已经进行了重命名,这是为了和Commons Pool 2里的名字一致。

DBCP 1.4.x和DBCP 1.3.x的代码库是没有什么差别的,除了那些添加到JDBC 4的实现方法已经从DBCP 1.3的源代码中移除出去了。

本文翻译自:http://commons.apache.org/proper/commons-dbcp/

时间: 2024-11-10 12:39:06

DBCP组件概述的相关文章

Android开发四大组件概述

这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity具体解释 二.Service具体解释 三.Broadcast Receiver具体解释 四.Content Provider具体解释 外加一个重要组件 intent的具体解释.(主要来自于网络) 1.Activity 一个Activity通常展现为一个可视化的用户界面.比如,一个activity可能展现为一个用户能够选择的菜单项列表或者展现一些图片以及图 片的标题.一个消息服务应用程序可能包括一个显示联系人列表的ac

POCO库——Foundation组件概述

Foundation组件作为POCO库的基础组件,主要包含了核心Core.缓存Cache.加解密Crypt.日期时间DateTime.动态类型Dynamic.事件events.文件系统Filesystem.哈希Hashing.日志Logging.通告机制Notifications.进程Processes.正则表达式RegularExpression.共享库SharedLibrary.数据流Streams.任务管理Tasks.文本编码Text.线程Threading.统一资源标识符URI.通用唯一

列表组件概述(转)

全文转至:http://www.cnblogs.com/lyzg/ 这次要介绍的是列表组件.为了写它,我花了有将近2周的晚上,才一点一点的把它写到现在这个程度.到目前为止,一共写了有17个文件,虽然没有覆盖到一些更复杂的场景,但是把我当时计划写这个组件的基本目的已经完成了.先给大家看看我最后写出来的文件情况: 也许有人会好奇,一个列表的功能怎么会写出这么多东西出来?关于这个问题的答案,我稍后再来总结,先让我描述下我写这些东西之前产生的想法. 1. 背景介绍 我是去年5月份在上家公司开始做的前端开

Flume(2)组件概述与列表

上一节搭建了flume的简单运行环境,并提供了一个基于netcat的演示.这一节继续对flume的整个流程进行进一步的说明. 一.flume的基本架构图: 下面这个图基本说明了flume的作用,以及flume中的基本组件:source.channel.sink. Source:完成对日志数据的收集,分成transtion 和 event 打入到channel之中.   Channel:主要提供一个队列的功能,对source提供中的数据进行简单的缓存.   Sink:取出Channel中的数据,进

Tomcat6.0组件概述

Tomcat6是最新版本的web容器,其支持最新版本的servlet2.5和jsp2.1.而且Tomcat6架构也是经过重新设计优化过的,所以我们有必要分析一下它的架构过程.显然,这是一个通过阅读Tomcat的源代码及相关文档,演绎架构的过程.或许有人会说,这不是放马后炮吗?!!但我觉得这是自我进步的一个必经步骤,先模仿之,然后才能超越之,毕竟我本凡人. Tomcat的架构总的来说是分层次的.可插拔的组件架构.分层次是指构成Tomcat的组件不是同一级别的,上层组件可以包含子组件,各个组件有其功

HeartBeat 集群组件概述

Heartbeat 是一个基于Linux开源的高可用集群系统.主要包括心跳服务和资源接管两个高可用集群组件.心跳监测服务可以通过网络链路和串口进行,而且支持冗余链路, 它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务.本文简要描述了heartbeat v2集群架构组件及其相关概念,供大家参考. 一.高可用集群的特点 高可用服务 通常使用集群方式实现,这也是集群的最大作用和体现. 其

struts组件概述

struts核心控制器 在服务器启动时调用 init()方法,读取xml中常量信息→将xml配置文件中的信息,以一定格式封装到javabean中,所以修改了xml文件就需要重启服务器 之后执行dofilter方法  首先解析http请求→到javabean中寻找→找到后通过action a = Class.forName(action类路径) 来创建对象  String str = a.execute;返回字符串 → 根据返回的字符串去javabean中找→执行type="" 其中的功

Active Directory 域服务之AD DS 逻辑组件概述

AD DS 架构: AD DS 架构: 1.定义可存储在 AD DS 中的每一种对象类型 2.强制实施与对象创建和配置有关的规则 AD DS 架构由Schema Admins组的用户来控制 域: 域是逻辑目录组件,用于分组和管理组织中的AD DS 对象. 域提供: 1.管理边界,用来将策略应用于对象组 解释:当域树中有父域A,子域B,父域A实施策略只能应用于自己,不能应用于子域B中的策略 2.复制边界,用于在域控制器之间复制数据 解释:当域树中有父域A,子域D,父域中域控制器有B,C,子域中有域

Active Directory 域服务之AD DS 物理组件概述

AD DS 域控制器: 域控制器是安装了 AD DS 服务器角色的服务器. 域控制器: 1.承载 AD DS 目录存储的副本 2.提供身份验证和授权服务,使用的协议是kerberos,参考文章 https://www.cnblogs.com/zpchcbd/p/11707302.html 3.将更新复制到域和林中的其他域控制器 4.允许在服务器上管理用户帐户和网络资源 Windows Server 2008 AD DS 支持 RODC(只读域控制器) RODC(只读域控制器):只读AD DS数据