07提高数据处理的效率.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文档。上传文档
查看更多
07提高数据处理的效率

提高数据处理的效率(2) 主要内容 为什么需要连接池 连接池的概念 一个简单实用的连接池及其应用模型 更复杂的连接池模型 为什么需要连接池 在基于JDBC的数据库应用开发中,数据库连接的管理是一个难点,因为它是决定应用性能的一个重要因素。 数据库的传统开发模式一般按照如下步骤: 在主程序(Application, Servlet, Beans)中创建数据库连接 进行SQL操作 操作完毕,断开数据库连接 这种传统的模式存在很多问题: 首先,要为每一次数据库操作创建连接、最后断开连接,而连接的创建和断开是最耗资源的,如果是小型应用,数据库的访问不是很频繁,用户或许感觉不到这种开销;若是大型的web应用,很短的时间内也可能会有成百上千次操作请求,这种情况下系统的开销是相当大的,很多web应用的性能瓶颈就在于此。 其次,使用传统的模式,用户必须清醒管理每一个连接,确保它们能够被正确关闭,如果出现遗漏或者程序异常而致使某些连接未能关闭,就导致了系统内存的泄漏,最终不得不重启系统。 为什么需要连接池 解决的办法: 对于访问量不是很大的应用,可让所有客户共享一个全局的数据库连接。这个全局的连接对象创建后就不关闭,每个用户的数据库操作都放在一个synchronized(con)块中。 事实上,不可能保证任何时刻只有一个客户访问,况且一般服务器都可以承担不止一个的数据库连接,所以,将客户的数据库连接限制在一定数量以内,用连接池来管理所有数据库连接,是更好的方法。 连接池的概念 传统开发模式的问题根源在于对于连接资源的低效管理。对于共享资源,有一个很著名的设计模式:资源池。此模式正是为了解决资源的频繁分配、释放所造成的问题的。把此模式应用到数据库连接的管理上,就是连接池的概念。 连接池的核心思想是连接的复用,可以在初始化的时候预先建立一些连接放置在内存中以备使用,当程序中需要建立数据库连接时,只需从内存中取出一个而不用新建,使用完以后放回内存即可。连接的建立、断开都由连接池自身来管理。 连接池的概念 可以通过设置连接池的参数来控制池中的下限连接数、上限连接数。 好的连接池还可以控制每个连接的最大使用次数,以及最大空闲时间等;可以让多于连接池中连接数的并发请求在请求队列中排队,甚至可根据池中连接的使用率,动态的增加或减少池中的连接数。 一个简单实用的连接池及其应用模型 整体结构图 一个简单实用的连接池及其应用模型 数据库连接池 功能:管理到某个特定数据库的连接对象 连接池本身的属性参数: 连接池名字(不妨与数据库同名) 该数据库的URL 该数据库的登陆用户名 该数据库的登陆密码 该数据库允许的最大连接数(下限连接数为0) 提供给外部的方法: 获取一个空闲连接 获取一个空闲连接(如果暂时没有, 可在指定时间内等待) 归还一个连接, 这个连接将成为一个空闲连接 关闭所有空闲连接的资源, 释放资源 连接池对空闲连接的管理参数: 空闲连接的集合 外部正在使用的该池的连接数目 一个简单实用的连接池及其应用模型 连接池管理器 属性: 不同数据库所对应的池的集合 不同后台所对应的驱动的集合 正在使用这个池管理器的客户数 本身的初始化工作: 数据库驱动的初始化(注册驱动) 不同数据库所对应的池的初始化(创建池) 提供给外部的方法: 获取这个池管理器的唯一实例(单态设计模式) 归还这个池管理器的唯一实例(表明不再继续使用) 获取某个池的一个空闲连接 获取某个池的一个空闲连接(如果暂时没有,可以等待指定时间) 归还某个池的一个连接,此连接将成为该池的一个空闲连接 清空所有连接池并关闭各池内的连接,注销各后台驱动的注册 要求:各后台驱动名、各池(数据库)信息放在一个属性文件中 一个简单实用的连接池及其应用模型 包装数据库的操作 目的: 用户不用直接使用池管理器和池 用户不用直接操作连接对象、SQL语句对象等 属性: 连接池管理器的实例对象 用户要访问的池(数据库)名 连接对象(Connection) SQL语句对象(PreparedStatement) 方法: Connection连接对象创建SQL语句对象的方法 SQL语句对象的各种操作方法,如close() 想想用户怎样操作最方便,最合理 实现该连接池模型 复习内容: JDBC数据库的操作 多线程 API(各种集合类,如Vector, Hashtable, Properties等) 单态设计模式 包装设计模式的类似思想 程序的流程控制 …… 使用该连接池 复习内容: jar包 classpath 数据库操作 …… 复习与实践 使用连接池jar包(注意不要忘了database.txt),SQL Server下的yinhe库中的employees表中的内容,全部复制到MySQL下的某个数据表中。 复习内容:数据库操

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档