连接池数据库连接池的原理是什么?

连接池  时间:2021-09-02  阅读:()

数据库连接池

在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。

数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。

数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。

数据库连接池的主要操作如下: (1)建立数据库连接池对象(服务器启动)。

(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。

(3)对于一个数据库访问请求,直接从连接池中得到一个连接。

如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

(4)存取数据库。

(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。

如实际空闲连接数大于初始空闲连接数则释放连接)。

(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

数据库连接池与JDBC的区别

数据库连接池与JDBC的区别如下: 1、理念方面的区别:
  • 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。

    这项技术能明显提高对数据库操作的性能。

  • JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

    JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

    2、原理不同:
  • 与数据库建立连接的标准方法是调用DriverManager.getConnection方法。

    该方法接受含有某个URL的字符串。

    DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。

    DriverManager类存有已注册的Driver类的清单。

    当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。

    Driver的方法connect使用这个URL来建立实际的连接。

  • 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。

    使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。

    而连接的建立、断开都由连接池自身来管理。

    同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。

    也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

    连接池有什么作用?怎么使用连接池?(具体方法)

    最大维持连接数:没有任何请求时在连接池中可以存在的连接数 最大连接数:连接池中最多可以存在的连接个数。

    最大等待时间:当断开连接时,超过最大维持连接数的连接不会马上销毁,最大等待时间过后它才会销毁。

    连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。

    这样省略了创建连接和销毁连接的过程。

    现在假设:最大维持连接数是10,最大连接数是20,最大等待时间是10000(毫秒) 其过程:最开始在连接池中有10个连接(最大连接数),当有用户申请连接时,其将一个连接分配用户,直到连接池中的10个连接全都分配出去,当第11个用户申请连接时,它将创建第11个连接并分配给该用户,直到把第20个连接(最大连接数)分配给第20个用户,当第21个用户申请连接时,它需要等待,直到前面的20个用户中某一个断开了连接,才会把那个连接分配给第21个用户,当用户断开连接时(第11至20个连接),该连接不会立刻被释放而是需要等待10000毫秒(最大等待时间),才被释放,当没有用户连接时,连接池内还保持10个连接。

    在开发中,使用连接池时若没有关闭连接(调用连接的close方法)会出现“连接池疲劳的错误”。

    数据库连接池的原理是什么?

    数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。

    如: 外部使用者可通过getConnection 方法获取连接,使用完毕后再通过releaseConnection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

  • DMIT(8.72美元)日本国际线路KVM月付8折起,年付5折

    DMIT.io是成立于2018年的一家国外主机商,提供VPS主机和独立服务器租用,数据中心包括中国香港、美国洛杉矶和日本等,其中日本VPS是新上的节点,基于KVM架构,国际线路,1Gbps带宽,同时提供月付循环8折优惠码,或者年付一次性5折优惠码,优惠后最低每月8.72美元或者首年65.4美元起,支持使用PayPal或者支付宝等付款方式。下面列出部分日本VPS主机配置信息,价格以月付为例。CPU:...

    iWebFusion:独立服务器月付57美元起/5个机房可选,10Gbps服务器月付149美元起

    iWebFusion(iWFHosting)在部落分享过很多次了,这是成立于2001年的老牌国外主机商H4Y旗下站点,提供的产品包括虚拟主机、VPS和独立服务器租用等等,其中VPS主机基于KVM架构,数据中心可选美国洛杉矶、北卡、本德、蒙蒂塞洛等。商家独立服务器可选5个不同机房,最低每月57美元起,而大流量10Gbps带宽服务器也仅149美元起。首先我们分享几款常规服务器配置信息,以下机器可选择5...

    搬瓦工VPS:新增荷兰机房“联通”线路的VPS,10Gbps带宽,可在美国cn2gia、日本软银、荷兰“联通”之间随意切换

    搬瓦工今天正式对外开卖荷兰阿姆斯特丹机房走联通AS9929高端线路的VPS,官方标注为“NL - China Unicom Amsterdam(ENUL_9)”,三网都走联通高端网络,即使是在欧洲,国内访问也就是飞快。搬瓦工的依旧是10Gbps带宽,可以在美国cn2 gia、日本软银与荷兰AS9929之间免费切换。官方网站:https://bwh81.net优惠码:BWH3HYATVBJW,节约6...

    连接池为你推荐
    融360请问融360真的可以贷款吗?他说一天到帐是真的吗?CAA什么叫CAA脑溢血?文件下载怎么把电脑上的文件下载到U盘里?按键精灵教程按键精灵怎么使用容灾备份容灾备份的容灾分类路由器映射路由器映射设置教育城域网关于学校局域网文件下载招行信用卡还款招商银行信用卡有哪几个还款方式呢?soap是什么意思肥皂剧是什么意思?sd卡座SD卡座 FPC座子请问这些产品哪家厂家的货比较好啊?
    免费虚拟主机申请 本网站服务器在美国维护 enom 韩国加速器 香港cdn 香港机房托管 permitrootlogin 大容量存储 毫秒英文 创梦 微信收钱 789电视网 流量计费 hkt 搜索引擎提交入口 国外ip加速器 联通网站 外贸空间 vul 免费asp空间 更多