第2讲数据库连接池.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第1页,共36页,星期日,2025年,2月5日本章目标数据连接池原理DBCP、C3P0,JNDI连接池配置使用第2页,共36页,星期日,2025年,2月5日一、回顾数据库直接连接JDBC可做三件事:与数据库建立连接、执行SQL语句、处理结果ConnectionDriverManagerStatementResultSetDriverManager:依据数据库的不同,管理JDBC驱动Connection:负责连接数据库并担任传送数据的任务Statement:由Connection产生、负责执行SQL语句ResultSet:负责保存Statement执行后所产生的查询结果客户端数据库服务器1234第3页,共36页,星期日,2025年,2月5日使用数据直接连接的缺点在某一时刻连接必须服务于一个用户,以免造成事务冲突来自不同用户的请求(都使用了同一个连接)对相同的事务进行操作,如果一个请求试图回滚,那么所有使用相同连接的数据库操作都要被回滚。创建连接需要耗费时间创建一个连接大概需要1-2秒的时间。保持连接打开状态的代价很大尤其是在系统资源(例如内存)方面。数据库产品的许可证都按照同时打开的连接数目来收费。第4页,共36页,星期日,2025年,2月5日二、数据库连接池原理什么是数据库连接池数据库连接池:Connectionpooling,它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。第5页,共36页,星期日,2025年,2月5日二、数据库连接池原理数据库连接池运行机制从连接池获取或创建可用连接;使用完毕之后,把连接返还给连接池;在系统关闭前,断开所有连接并释放连接占用的系统资源;还能够处理无效连接(原来登记为可用的连接,由于某种原因不再可用,如超时,通讯问题),并能够限制连接池中的连接总数不低于某个预定值和不超过某个预定值;第6页,共36页,星期日,2025年,2月5日二、数据库连接池原理连接池示例图:第7页,共36页,星期日,2025年,2月5日二、数据库连接池原理使用数据库连接池技术的好处 1.资源重用

由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。

2.更快的系统响应速度

数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。

3.统一的连接管理,避免数据库连接泄漏

在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。第8页,共36页,星期日,2025年,2月5日二、数据库连接池原理常用的数据库连接池基于JNDI、C3P0、DBCP技术的数据连接池(1)JNDI(JavaNamingandDirectoryInterface):是SUN公司提供的一种标准的Java命名系统接口,是一组在Java应用中访问命名和目录服务的API。命名服务是将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,它提供了应用编程接口(applicationprogramminginterface,API)和服务提供者接口(serviceproviderinterface,SPI)。这一点的真正含义是,要让应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDISPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,不必操心JNDISPI。只需要确认要使用的每一个命名或目录服务都有服务提供者。(2)C3P0:连接池作者是《星球大战》迷,C3P0就是其中的一个机器人,并且这个名称中包涵connection和pool的单词字母。因此叫这个名字。?(3)DBCP(DataBaseconnectionpool):是apache上的一个java连接池项目,也是tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar第9页,共36页,星期

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档