`
itspace
  • 浏览: 963409 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

什么叫连接池

阅读更多
连接池的好处

  连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。
  这种把连接“汇集”起来的技术基于这样的一个事实:对于大多数应用程序,当它们正在处理通常需要数毫秒完成的事务时,仅需要能够访问JDBC 连接的 1 个线程。当不处理事务时,这个连接就会闲置。相反,连接池允许闲置的连接被其它需要的线程使用。
  事实上,当一个线程需要用 JDBC 对一个 GBase 或其它数据库操作时,它从池中请求一个连接。当这个线程使用完了这个连接,将它返回到连接池中,这样这就可以被其它想使用它的线程使用。
  当连接从池中“借出”,它被请求它的线程专有地使用。从编程的角度来看,这和用户的线程每当需要一个 JDBC 连接的时候调用DriverManager.getConnection() 是一样的,采用连接池技术,可通过使用新的或已有的连接结束线程。
  连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:
  减少连接创建时间
  虽然与其它数据库相比 GBase 提供了较为快速连接功能,但是创建新的 JDBC 连接仍会招致网络和 JDBC 驱动的开销。如果这类连接是“循环”使用的,使用该方式这些花销就可避免。
  简化的编程模式
  当使用连接池时,每一个单独的线程能够像创建了一个自己的 JDBC 连接一样操作,允许用户直接使用JDBC编程技术。
  受控的资源使用
  如果用户不使用连接池,而是每当线程需要时创建一个新的连接,那么用户的应用程序的资源使用会产生非常大的浪费并由可能会导致高负载下的异常发生。
  注意,每个连到 GBase 的连接在客户端和服务器端都有花销(内存,CPU,上下文切换等等)。每个连接均会对应用程序和 GBase 服务器的可用资源带来一定的限制。不管这些连接是否在做有用的工作,仍将使用这些资源中的相当一部分。
  连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。

连接池运作原理

  在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解决这个问题最常用的方法,在许多应用程序服务器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术是非常必要的。
  数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。
  数据库连接池的主要操作如下:
  (1)建立数据库连接池对象(服务器启动)。
  (2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
  (3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
  (4)存取数据库。
  (5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
  (6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
分享到:
评论
1 楼 wangbaosun 2009-11-16  
文章写的还行!

相关推荐

    C3P0连接池jar包(完整版).rar

    C3P0Utils:负责从连接池获取一个连接、放回一个连接。 在src目录下新建一个名叫 c3p0-config.xml 的文件,注意,必须是这个文件名

    AP's Toolkit:具有附加实用程序功能的TCP / UDP连接池管理器-开源

    连接池/连接数组/连接列表/连接集库。 该库包含用于在客户端或服务器端管理多个同时进行的TCP和UDP连接的控制机制。 一些附加的实用程序功能可用。 该代码使用纯C语言编写,以最大程度地提高兼容性,并且主要由epoll...

    java连接数据库时所用到的JAR

    oracle连接池用到的架包,以及MySQL SQLSever连接数据库的架包和DBCP数据连接池所用到的架包

    java的网页技术连接数据库

    java课程的技术,网页制作,并且连接数据库(连接池),数据的管理

    was6.1_上部署Web应用程序详解(图)

    配置数据库连接池,在这里叫:配置数据源; 3.配置数据库登录帐号,密码,在这里叫:J2C认证别名; 1.1 启动服务器,通过IE浏览器输入http://127.0.0.1:9060/ibm/console进入websphere控制台目录 1.2 单击左边资源==》在...

    浅谈C#中的string驻留池

    开发这么多年,相信大家对‘池’ 这个概念都耳熟能详了,连接池,线程池,对象池,还有这里的驻留池,池的存在就是为了复用为了共享,独乐乐不如众乐乐,毕竟一个字符串的生成和销毁既浪费空间又浪费时间,还不如先...

    使用MyEclips快速生成SSH架构完成Dept、Emp的CRUD操作

    1.使用MyEclipse提供的数据库连接工具,连接上数据库;... dataSource(数据库连接池) sessionFactory 5.测试spring和hibernate的结合; 6.自动生成po和dao; 7.把生成的底层迁移到eclipse 8.在底层中加入分页功能;

    Java生产制造执行MES系统源码 MES源码

    连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 数字化平台:支撑数据展示,定时动态刷新数据。热部署...

    Spring+DWR+EXT 技术的一个人事管理系统

    一个基于Spring依赖注入特性的二级插件的模型,里面主要封装了如下特性:数据库连接池(常用的4-5个)、分页查询(oracle,mysql,sqlserver等)、数据转码(空值、特定、列名等)、数据导出(Pdf,excel,html,...

    JAVA版SpringBoot生产制造执行MES系统源码mysql8.echarts.jenkins.docker.nginx

    连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 数字化平台:支撑数据展示,定时动态刷新数据。热部署(SQL视图...

    SpringBoot生产制造执行MES系统源码 MES源码

    连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 数字化平台:支撑数据展示,定时动态刷新数据。热部署(SQL视图...

    jsp+oracle的新闻发布系统

    这是我在学校做的作业,是我们教学ppt上的作业,我们老师叫我们用连接池,jdbc,EL和servlet。

    druid-1.0.9和druid-1.1.22.zip

    步骤 1.导入jar包druid-1.0.9.jar 2.定义配议文件:(1)是properties形式的 (2)可以叫任意名称,可以放在任意目录下 ...3.获取数据库连接池对豫:通过工厂来来获取DruidDatasourceFactory 4.获取连接: getConnection

    老成FMS框架 v5.3

    所以到老成FMS 2.2版本之前我都是使用的是自己写的连接池跟封装的持久类。后来我看到mybaits比较符合我的要求,集成进来也降低了其他人的学习成本,所以果断替换掉,现在的版本我认为比mybatis-plus操作起来还更方便...

    mallplatform:mallplatform项目是一个商城平台,包括前台商城系统(h5 + pc),商城后台系统和后台管理系统,基于SpringBoot + springcloud + MyBatis实现。商品系统,对账系统,搜索系统,优惠系统等一系列微服务模块,是一个完整的商城平台

    自动生成代码 mybatis-generator,自动生成实体类、dao和mapper文件 ...因为后管需要查看所有数据库中的数据(7个),所以使用多数据源,使用druid连接池,数据库的配置信息在admin项目下的application.yml 配置文件

    NovSpringBoot:with带有Spring Boot的传统框架,适用于接口

    NovSpringBoot :military_medal:A traditional framework with Spring Boot , applicable to interface. ...在现有基础上增加了Ali Druid连接池 近期新项目:UAC-TITAN:实现用户的SSO登录,具体可参考项目:

    python爬虫入门教程–优雅的HTTP库requests(二)

    前言 ... 好在,还有一个非常惊艳的 HTTP 库叫 requests,它是 GitHUb 关注数最多的 Python 项目之一,...requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive、连接池、Cookie持久化、内容自动解

    java面试题

    Struts2只是起到一个数据接收和转接的功能,就是Controller控制器,而传来数据的页面叫view显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的连接。 heap和stack有什么区别? 答:...

    最新Java面试宝典pdf版

    29、说出数据连接池的工作机制是什么? 113 30、为什么要用 ORM? 和 JDBC 有何不一样? 113 六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom...

    千方百计笔试题大全

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

Global site tag (gtag.js) - Google Analytics