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

连接池  时间: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 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

  • racknerd:美国大硬盘服务器(双路e5-2640v2/64g内存/256gSSD+160T SAS)$389/月

    racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...

    UCloud:美国云服务器,洛杉矶节点大促,低至7元起/1个月

    ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...

    百纵科技云主机首月9元,站群1-8C同价,美国E52670*1,32G内存 50M 899元一月

    百纵科技:美国高防服务器,洛杉矶C3机房 独家接入zenlayer清洗 带金盾硬防,CPU全系列E52670、E52680v3 DDR4内存 三星固态盘阵列!带宽接入了cn2/bgp线路,速度快,无需备案,非常适合国内外用户群体的外贸、搭建网站等用途。官方网站:https://www.baizon.cnC3机房,双程CN2线路,默认200G高防,3+1(高防IP),不限流量,季付送带宽美国洛杉矶C...

    连接池为你推荐
    云知声厦门云知芯智能科技有限公司怎么样?容灾备份容灾备份的容灾分类a8处理器什么是A8处理器?nvidia官方网站怎么下载英伟达显卡驱动官方资源优化配置如何理解 教育资源优化配置0x800ccc0f您的服务器意外终止了连接。其可能原因包括服务器出错、网络出错或长时间处于非活动状态。 0x800CCC0Fcode查询手机CODE查询360官网打不开我的360打不开gps简介GPS有哪些功能安全工程师待遇注册安全工程师待遇怎样?
    华众虚拟主机管理系统 到期域名查询 lunarpages vps.net 帽子云 hkg 广州服务器 稳定免费空间 cdn加速是什么 新世界服务器 根服务器 腾讯网盘 阿里云邮箱怎么注册 .htaccess forwarder 最新优惠 globalsign 神棍节 华为云服务器宕机 ddos攻击软件 更多