欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《数据库连接池》PPT课件.ppt

    • 资源ID:70316721       资源大小:1.71MB        全文页数:36页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《数据库连接池》PPT课件.ppt

    三数据库连接池第讲本章目标数据连接池原理数据连接池原理DBCP、C3P0,JNDI连接池配置使用连接池配置使用一、回顾数据库直接连接JDBC可做三件事:与数据库建立连接、执行SQL语句、处理结果ConnectionDriverManagerStatementResultSetDriverManager:依据数据库的不同,管理:依据数据库的不同,管理JDBC驱动驱动Connection:负责连接数据库并担任传送数据的任务:负责连接数据库并担任传送数据的任务Statement:由由Connection产生、负责执行产生、负责执行SQL语句语句ResultSet:负责保存:负责保存Statement执行后所产生的查询结果执行后所产生的查询结果客客户户端端数据库服务器数据库服务器1234使用数据直接连接的缺点在某一时刻连接必须服务于一个用户,以免造成事务冲突1.来自不同用户的请求(都使用了同一个连接)对相同的事务进行操作,如果一个请求试图回滚,那么所有使用相同连接的数据库操作都要被回滚。创建连接需要耗费时间1.创建一个连接大概需要1-2秒的时间。保持连接打开状态的代价很大1.尤其是在系统资源(例如内存)方面。2.数据库产品的许可证都按照同时打开的连接数目来收费。二、数据库连接池原理什么是数据库连接池1.数据库连接池:Connectionpooling,它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。二、数据库连接池原理数据库连接池运行机制1.从连接池获取或创建可用连接;2.使用完毕之后,把连接返还给连接池;3.在系统关闭前,断开所有连接并释放连接占用的系统资源;4.还能够处理无效连接(原来登记为可用的连接,由于某种原因不再可用,如超时,通讯问题),并能够限制连接池中的连接总数不低于某个预定值和不超过某个预定值;二、数据库连接池原理连接池示例图:二、数据库连接池原理使用数据库连接池技术的好处使用数据库连接池技术的好处1资源重用资源重用由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程片以及数据库临时进程/线程的数量)。线程的数量)。2更快的系统响应速度更快的系统响应速度数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。时间。3统一的连接管理,避免数据库连接泄漏统一的连接管理,避免数据库连接泄漏在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。二、数据库连接池原理常用的数据库连接池1.基于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三、连接池的使用DBCP主要配置属性:1.下面对里面几个比较重要的参数进行一下说明:2.name:表示你的连接池的名称也就是你要访问连接池的地址3.type:是对象的类型4.driverClassName:是数据库驱动的名称5.url:是数据库的地址6.username:是登陆数据库的用户名7.password:是登陆数据库的密码8.factory:默认的使用,可以使用factory=,就是Apache的开源的数据库连接池,但一定要把放到项目的lib里。3.1DBCP使用maxIdle,是最大的空闲连接数,这里取值为2,表示即使没有数据库连接时依然可以保持2空闲的连接,而不被清除,随时处于待命状态。maxWait,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。maxActive是最大激活连接数,这里取值为20,表示同时最多有20个数据库连接。三、连接池的使用DBCP应用应用(1)新建一个)新建一个web工程工程(2)把数据库包导入到)把数据库包导入到lib如如(3)把)把common-dbcp.jar,common-pool.jar,common-collections.jar导入到导入到lib(4)在在WebRootMETA-INF建立文件建立文件context.xml内容如下:内容如下:三、连接池的使用(5)在jsp中使用数据库连接池导入类包java.sql.*,.*.*.*三、连接池的使用(6)编写代码%tryInitialContextcontext=newInitialContext();DataSourceds=(DataSource)context.lookup(java:/comp/env/jdbc/test);Connectionconn=ds.getConnection();Statementstmt=conn.createStatement();ResultSetset=stmt.executeQuery(SELECTid,name,ageFROMuser);while(set.next()out.println(set.getString(name);BasicDataSourcedbs=(BasicDataSource)ds;out.print(dbs.getNumIdle()+);out.print(dbs.getNumActive();catch(NamingExceptione)e.printStackTrace();catch(SQLExceptione)e.printStackTrace();%三、连接池的使用3.2C3P0使用C3PO连接池是一个优秀的连接池,推荐使用。C3PO实现了JDBC3.0规范的部分功能,因而性能更加突出。C3PO主要配置属性acquireIncrement:当连接池中的连接耗尽的时候c3p0一次同时获取的连接数acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试的次数acquireRetryDelay:两次连接中间隔时间,单位毫秒。Default:1000autoCommitOnClose:连接关闭时默认将所有未提交的操作回滚。Default:falseDescription:描述minPoolSize:连接池中最小连接数maxPoolSize:连接池中最大连接数Name:连接池的名字User:用户名Password:密码auth表示认证方式,一般为Container3.2C3P0使用factory:工厂类的位置,生成数据源Type:连接池的类型jdbcUrl:数据库地址3.2C3P0使用C3P0应用应用(1)导入包到导入包到libc3p0-0.9.1.2.jar、(2)配置文件)配置文件Tomcat5.5confserver.xml在在tomcatconfserver.xml的的GlobalNamingResources中增加:中增加:3.2C3P0使用(3)配置文件)配置文件WebRootMETA-INFcontext.xml(4)配置文件)配置文件WebRootWEB-INFweb.xmlDBConnectionjdbc/mysqlDBContainer3.2C3P0使用(5)编码java.sql.*javax.naming.*javax.sql.*com.mchange.v2.c3p0.*3.2C3P0使用3.2C3P0使用在JSP文件中中添加代码字段1:字段2:C3P0的另一使用方法1.创建DB包,创建DBUtil类。2.创建静态方法getConn(),静态方法close()。用于连接关闭数据源。示例代码public class DBCPTest private static BasicDataSource bds=null;private static ConnectionFactory cf=null;static bds=new BasicDataSource();bds.setDriverClassName();bds.setUrl(jdbc:sqlserver:/127.0.0.1:1433;databaseName=AjaxDb);bds.setInitialSize(10);bds.setMaxActive(4);bds.setMaxWait(5000);bds.setUsername(sa);bds.setPassword(Zzx198461);cf=new DataSourceConnectionFactory(bds);public static Connection getConnection()throws SQLException return cf.createConnection();public static void destroy()throws SQLException cf=null;bds.close();bds=null;public static void main(String args)throws Exception System.out.println(DBCPTest.getConnection();3.3配置TomcatJNDI数据库连接池1第一步:加载数据驱动包。1.Tomcate5.5将数据库驱动包拷贝到tomcathome/common/lib目录下。2.Tomcate6.0将数据库驱动包拷贝到tomcathome/lib目录下。配置TomcatJNDI数据库连接池2第二步:配置tomcat连接池文件。1.A在web工程中的META-INF创建context.xml文件2.在文件中写入内容:配置TomcatJNDI数据库连接池3第三步:1.在web.xml配置如下:connpoolContainer配置TomcatJNDI数据库连接池4第四步:1.修改DBUtil类。publicclassDBUtilprivateDBUtil()publicstaticConnectiongetConn()throwsExceptionContextinitCtx=newInitialContext();ContextenvCtx=(Context)initCtx.lookup(java:comp/env);DataSourceds=(DataSource)envCtx.lookup(connpool);returnds.getConnection();JNDI与tomcat连接池l私有数据库连接池(私有数据库连接池(Host节点里面)节点里面)JNDI与tomcat连接池l公有数据库连接池公有数据库连接池JNDI与tomcat连接池l引用公有数据库连接池(引用公有数据库连接池(Host节点里面)节点里面)JNDI与tomcat连接池l项目工程目录项目工程目录WEB-INfweb.xml中配置中配置jdbc/sqlserverjavax.sql.DataSourceContainerJNDI与tomcat连接池lJSP测试文件测试文件.%out.print(Successful!成功!n);%rs.close();stmt.close();conn.close();catch(Exceptione)out.print(出现例外!+e.getMessage();e.printStackTrace();.JNDI与tomcat连接池l配置数据源的简单方法配置数据源的简单方法1)tomcat6.0后提供了context.xml,无需设置虚拟目录和配置web.xml。将配置好的context.xml放到工程的META-INF目录下。context.xml JNDI与tomcat连接池(2)在程序中,通过tomcat服务器调用InitialContextctx=newInitialContext();DataSourceds=(DataSource)ctx.lookup(java:comp/env/jdbc/server);Connectionconn=ds.getConnection();总结数据库连接池,可以缓存连接对象传统的连接对象,在使用完后没有很好的回收dbcp连接池,在多用户访问时,连接速度比较快连接池可以,有效的管理数据库连接对象在tomcat上配置的连接池,一定要经过tomcat的容器调用

    注意事项

    本文(《数据库连接池》PPT课件.ppt)为本站会员(wuy****n92)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开