第一讲 数据连接池原理.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一讲 数据连接池原理

第一讲 本章目标 数据连接池原理 使用数据直接连接的缺点 创建连接需要耗费时间 创建一个连接大概需要1-2秒的时间。 在某一时刻连接必须服务于一个用户,以免造成事务冲突 保持连接打开状态的代价很大 尤其是在系统资源(例如内存)方面。 数据库产品的许可证都按照同时打开的连接数目来收费。 数据库连接池原理 什么是数据库连接池 数据库连接池:Connection pooling,它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 数据库连接池原理 数据库连接池运行机制 客户端从连接池获取或创建可用连接;客户端使用完毕之后,把连接返还给连接池; 在系统关闭前,连接池断开所有连接并释放连接占用的系统资源; 连接池还能够处理无效连接(原来登记为可用的连接,由于某种原因不再可用,如超时,通讯问题),并能够限制连接池中的连接总数不低于某个预定值和不超过某个预定值; 数据库连接池原理 连接池示例图: 数据库连接池原理 使用数据库连接池技术的好处 1. 资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。 2. 更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。 3. 统一的连接管理,避免数据库连接泄漏 在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。 数据库连接池原理 常用的数据库连接池 DBCP数据连接池 C3P0数据连接池 DBCP的使用 DBCP连接池是Apache软件基金组织下的一个开源连接池实现。 编写DBCP测试类,DBCP主要接口与类。 DBCP配置类:org.apache.tomcat.dbcp.dbcp.BasicDataSource; DBCP的使用 DBCP主要配置属性: Username DBC驱动建立连接时所需的用户名。 Password DBC驱动建立连接时所需的用户密码。 url JDBC驱动建立连接时的连接地址。 driverClassName 使用的JDBC驱动完整JAVA类名。 initialSize(0) 初始化连接池时创建的连接数。 maxActive(8) 接池允许的最大并发连接数,值为非正数时表示不限制。 maxIdle(8) 连接池中的最大空闲连接数,超过此数值时多余的空闲连接将会被释放 值为负数时表示不限制。 maxWait(不确定) 以毫秒表示的当连接池中没有可用连接时等待可用连接返回的时间, 超时则抛出异常,值为-1时无限期等待。 DBCP性能测试: 30次查询时间。对比直接连接的方式性能大大提高了! 查看数据库的hashCode(),发现连接池的库对象可以被重用 C3P0使用 C3P0 连接池是一个优秀的连接池,推荐使用。C3PO实现了JDBC3.0规范的部分功能,因而性能也比较突出。 编写c3p0测试类,其主要接口有: 配置类:com.mchange.v2.c3p0.ComboPooledDataSource C3P0使用 C3p0性能测试: 如果不关闭库连接对象,这里的dbcp连接池最多可同时建立10个库连接对象,然后停止;c3p0则可以继续运行!说明c3p0可以自动扩充连接池。 用户并发访问(使用线程模拟),经测试dbcp的速度较快! 用户A访问网站时,开辟一个数据库对象conn, 用户A的操作没有结束。此时用户B来访问网站,又要开辟一个数据库对象conn,此时开辟2个数据库对象。 注意:Servlet只提供一个对象给所有用户服务,同时servlet的方法都是线程非安全的。 编写《定餐系统》 编写《定餐系统》的登陆功能 编写LoginServlet.java,用于处理登录请求。 如果登录失败,提示用户错误信息。 如果登录成功,进行商品显示(show.jsp)页面。 * 数据库连接池原理 知识点介绍 数据连接池原理 DBCP、C3P0连接池配置使

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档