第七章--数据库连接池及JNDI技术.ppt

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

第五章 数据库连接池及JNDI技术 本节内容 JNDI概述 连接池及JNDI的应用 本讲目标 连接池及JNDI的应用 JNDI介绍 什么是JNDI JNDI(Java Naming and Directory Interface,Java命名和目录接口) 是一组在Java应用中访问命名和目录服务的API 通过名称将资源与服务进行关联 JNDI的简单应用 应用步骤 修改Tomcat\conf\context.xml文件 使用lookup()进行查找 Context Environment name=tjndi value=hello JNDI type=java.lang.String / /Context //javax.naming.Context提供了查找JNDI 的接口 Context ctx = new InitialContext(); //java:comp/env/为前缀 String testjndi = (String)ctx.lookup(java:comp/env/tjndi); out.println(JNDI: +testjndi); 初始化Context对象 调用lookup()方法 JNDI查找的名称 生活中的连接池 普通电话 ----建立连接,等待回应 热线电话 ----已建立连接 连接 已连接 开始通话 开始通话 已连接,直接通话 连接中 传统数据库连接方式的不足 每一次请求时均需要与数据库进行连接,资源占用较多 当并发访问数量较大时,网站速度收到极大影响 在访问结束后必须要关闭连接释放资源 系统的安全性和稳定性相对较差 为什么使用连接池 为什么使用连接池 企业级开发需要稳健和高效的数据访问层 完成对数据库的CRUD操作 能够处理数据库发生的各种错误 可以灵活的修改配置 提供方便使用的工具 高性能 数 据 库 请求 响应 操作 结果 要求高效、稳健的数据访问层 打开连接,操作数据库,关闭连接 多次重复操作 传统的JDBC已经无法满足需求,那怎么办呢? 什么是连接池技术 连接池 连接池是在内存中预设好一定数量的连接对象,以备用户在进行数据库操作时直接使用 性能 数据库连接的建立、断开均由管理池统一管理 连接池技术与传统数据库连接的比较 数据库操作性能得到提升 通过连接池管理数据库的连接与释放、提高了系统资源的使用效率 连接池技术工作原理 连接池中的连接 数 据 库 想要获得连接 返回一个连接 返回一个已连接好的空闲连接 应用程序从连接池中获得连接 连接池是由容器提供的,用来管理池中连接对象 应用程序 连接池 数据源简介 数据源(DataSource) javax.sql.DataSource接口负责建立与数据库的连接 从Tomcat的数据源获得连接 把连接保存在连接池中 应用程序 Connection1 Connection2 Connection3 数 据 库 想要获得连接 返回一个连接 连接池 连接池中的连接对象 是由谁创建的呢? 访问数据源 如何获得DataSource对象 数据源由Tomcat提供,不能在程序中创建实例 使用JNDI获得DataSource引用 应用程序 jdbc/s1 jdbc/s2 数据源 数据源名称 Connection context.lookup( jdbc/s1 ) import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class TitlesBean { public List getTitles() { try { Context ic = new InitialContext(); DataSource source = (DataSource)ic.lookup(java:comp/env/jdbc/news); Connection connection = source.getConnection(); titlesQuery = connection.prepareStatement(SELECT * FROM titles ); ResultSet results = titlesQuery.executeQuery(); //为BookBean对象的属性赋值,并添加到titlesList中

文档评论(0)

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

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

1亿VIP精品文档

相关文档