许多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/

DBCP组件概述的更多相关文章

  1. SpringMVC 框架系列之组件概述与配置详解

    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...

  2. Android开发四大组件概述

    这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity具体解释 二.Service具体解释 三.Broadcast Receiver具体解释 四.Content Provid ...

  3. Spring MVC 9大组件概述

    SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和 DispatcherServlet.HttpServletBean直接继承 ...

  4. POCO库——Foundation组件概述

    Foundation组件作为POCO库的基础组件,主要包含了核心Core.缓存Cache.加解密Crypt.日期时间DateTime.动态类型Dynamic.事件events.文件系统Filesyst ...

  5. Flume(2)组件概述与列表

    上一节搭建了flume的简单运行环境,并提供了一个基于netcat的演示.这一节继续对flume的整个流程进行进一步的说明. 一.flume的基本架构图: 下面这个图基本说明了flume的作用,以及f ...

  6. Android UI学习组件概述

    Android的UI组件繁多,如果学习的时候不能自己总结和分类而是学一个记一个不去思考和学习他们内在的联系那真的是只有做Farmer的命了.为了向注定成为Farmer的命运抗争,在学习Android的 ...

  7. 微信小程序基本组件概述

    为了更好的理解微信小程序,本文90%文字描述来源于官网的介绍.官网原链接https://mp.weixin.qq.com/debug/wxadoc/dev/component/?t=20161222 ...

  8. 安卓构架组件——概述 Android Architecture Components

    谷歌官文文档地址:https://developer.android.google.cn/topic/libraries/architecture 安卓构架组建是库的集合:帮助你设计健壮的.易测试的. ...

  9. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

随机推荐

  1. remeber me即记住我功能

    1.登录过程中的记住我功能如图: 2.这样在登录认证的时候,客户端会传递两个cookie:remember_token和Tsession 3.即使客户端不传递cookie中的Tsession,只传递r ...

  2. 8.使用JPA保存数据【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51636989 在看这一篇文档的话,需要先配置好JPA – hibernate. 总体步骤: ...

  3. Activity启动活动最佳写法

    一,在被启动的Activity中新加一个静态方法public static void actionStart(Context context, String data1, String data2) ...

  4. 工业控制系统USB存储设备可信管理方案的(ICICS2015)论文PPT:TMSUI: A Trust Management Scheme

    本PPT是发表在ICICS2015 大会的论文 TMSUI: A Trust Management Scheme of USB Storage Devices for Industrial Contr ...

  5. android Activity的onPause()与onResume()

    官方文档地址:http://www.android-doc.com/training/basics/activity-lifecycle/pausing.html#Resume Pause和Resum ...

  6. SearchView的全面解析

    代码地址如下:http://www.demodashi.com/demo/12535.html 前言 今天来讲讲searchView的使用,这里讲的searchView是引用android.suppo ...

  7. Linux Shell 高级变量及字符串

    高级变量包含三个部分1.变量扩展2.命令替换3.算术扩展在Bash Shell中,$算符会触发到上述三种扩展,基本形式如下:    基本型             扩展种类            例子 ...

  8. Java jar转exe

    http://www.blogjava.net/baoyaer/articles/97405.html Java转exe篇: 实现方式:Eclipse搭配JSmooth(免费). 1.先由Eclips ...

  9. js获取时间查并实现倒计时读条

    <script type="text/javascript"> $().ready(function () {// 每增加一个切换,就要增加一行,tab1不变,其他的都 ...

  10. Android 函数回调

    1 http://blog.csdn.net/xyz_lmn/article/details/8631195 我感觉fragment和activity的通信形象的解释了函数的回调,看别人的博客越看越迷 ...