JavaWeb第六章连接池与数据源.ppt

上传人:wuy****n92 文档编号:70793398 上传时间:2023-01-28 格式:PPT 页数:26 大小:2.50MB
返回 下载 相关 举报
JavaWeb第六章连接池与数据源.ppt_第1页
第1页 / 共26页
JavaWeb第六章连接池与数据源.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《JavaWeb第六章连接池与数据源.ppt》由会员分享,可在线阅读,更多相关《JavaWeb第六章连接池与数据源.ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1第六章 连接池与数据源2 回顾什么是过滤器,它的作用是什么?什么是过滤器,它的作用是什么?过滤器实质就是一个实现了相应接口(javax.servlet.Filter)的Java类,它处于客户端和web资源(Jsp、Servlet等)之间,用于对请求或者响应进行拦截,添加一些额外的处理。实现过滤器的步骤是什么?实现过滤器的步骤是什么?建立一个实现Filter接口的类,并实现相应方法。在web.xml中对过滤器进行配置。Servlet事件监听按照监听对象来分类可分为哪三类?事件监听按照监听对象来分类可分为哪三类?Servlet上下文事件监听会话事件监听请求事件监听3 预习检查连接池技术的核心思想

2、是什么?连接复用。什么是JNDI?JNDI(Java Naming and Directory Interface)是用于向Java程序提供目录和命名功能的API。配置数据源时,需要修改Tomcat服务器的安装目录的conf下的哪个文件?Context.xml文件 本章任务在第三章的分页标签的基础上 5会使用JNDI获取数据源理解数据库连接池会读取基于属性文件的数据库配置信息掌握通用的DAO类 本章目标MVC的Model层1、如何理解MVC中的Model?qMVC设计模式q模型 -Modelq视图 -Viewq控制器 -ControllerMVC 对象对象控制器控制器模型模型视图视图?JSPS

3、ervletModel层主要是进行层主要是进行业务逻辑处理、访问业务逻辑处理、访问数据库和封装数据数据库和封装数据企业级开发对Model层的要求q 企业级开发需要稳健和高效的数据访问层q完成对数据库的CRUD操作q能够处理数据库发生的各种错误q可以灵活的修改配置q提供方便使用的工具q高性能数数数数 据据据据 库库库库请求请求响应响应操作操作结果结果要求高效、稳健的数据访问层要求高效、稳健的数据访问层打开连接,操作数打开连接,操作数据库,关闭连接据库,关闭连接多次重复操作多次重复操作传统的传统的JDBC已经已经无法满足需求,那无法满足需求,那怎么办呢?怎么办呢?数据库连接池(2-1)q普通电话-

4、建立连接,等待回应q热线电话-已建立连接连接连接已连接已连接开始通话开始通话开始通话开始通话已连接,直接通话已连接,直接通话连接中连接中流程框架图标使用规范q 连接池中的连接数数数数 据据据据 库库库库想要获得连接想要获得连接返回一个连接返回一个连接返回一个已连接返回一个已连接好的空闲连接好的空闲连接应用程序从连接池中获得连接应用程序从连接池中获得连接连接池是由容器提供的,连接池是由容器提供的,用来管理池中连接对象用来管理池中连接对象应用程序应用程序连接池连接池Connection1Connection2Connection3数据源简介q 数据源(DataSource)q接口负责建立与数据库的

5、连接q从Tomcat的数据源获得连接q把连接保存在连接池中应用程序应用程序Connection1Connection2Connection3数数数数 据据据据 库库库库想要获得连接想要获得连接返回一个连接返回一个连接连接池连接池连接池中的连接对象连接池中的连接对象是由谁创建的呢?是由谁创建的呢?JNDI介绍q 如何获得DataSource对象q数据源由Tomcat提供,不能在程序中创建实例q使用JNDI获得DataSource引用q什么是JNDIqJNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的

6、APIq接口的lookup()方法应用程序应用程序jdbc/s1jdbc/s2数据源数据源数据源名称数据源名称Connectioncontext.lookup(jdbc/s1)使用JNDI获取连接对象q 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 Initi

7、alContext();DataSource source=(DataSource)ic.lookup(java:comp/env/jdbc/books);Connection connection=source.getConnection();titlesQuery=connection.prepareStatement(SELECT*FROM titles);ResultSet results=titlesQuery.executeQuery();/为为BookBean对象的属性赋值对象的属性赋值,并添加到并添加到titlesList中中 catch(SQLException except

8、ion)exception.printStackTrace();catch(NamingException namingException)namingException.printStackTrace();finally closeConn();使用使用JNDI和数和数据源要导入的包据源要导入的包通过通过Context、DataSource获取获取Connection对象对象分为两部分分为两部分java:comp/env为为JavaEE默认路径默认路径jdbc/books为为DataSource名名定义定义JNDI异常异常演示示例演示示例1:JNDI的使用的使用TitlesBean.java

9、JNDI的配置q Tomcat的conf/context.xml中的配置 属性名称属性名称说明说明name指定Resource的JNDI名称auth指定管理Resource的Manager(Container:由容器创建和管理|Application:由Web应用创建和管理)type指定Resource所属的Java类maxActive指定连接池中处于活动状态的数据库连接的最大数目maxIdle指定连接池中处于空闲状态的数据库连接的最大数目maxWait指定连接池中的连接处于空闲的最长时间,超过这个时间会抛出异常,取值为-1,表示可以无限期等待JNDI的配置q 加入数据库驱动文件q把数据库驱动

10、的.jar文件,加入到Tomcat的commonlib中q应用程序的web.xml文件的配置q在web.xml中配置 jdbc/books javax.sql.DataSource Container 指定指定JNDI的名字,与的名字,与元素中的元素中的name一致一致指定引用资源的类名,与指定引用资源的类名,与元素中的元素中的type一致一致指定管理所引用资源的指定管理所引用资源的Manager与与元素中的元素中的auth一致一致常见错误1、Cannot load JDBC driver class 这是什么错误?这是什么错误?通过数据源访问数据库,由于数据源由通过数据源访问数据库,由于数据

11、源由Tomcat创建并维护,所创建并维护,所以必须把以必须把JDBC驱动程序拷贝到驱动程序拷贝到Tomcat的的common/lib目录下。目录下。代码框图标使用规范2、Cannot create JDBC driver of class for connect URL null DataSource source=(DataSource)ic.lookup(java:comp/env/jdbc/books);connection=source.getConnection();titlesQuery=connection.prepareStatement(“SELECT*FROM titles

12、);要一致要一致这是什么错误?这是什么错误?TitlesBean.javacontext.xml常见错误3、Name jdbc is not bound in this Context DataSource source=(DataSource)ic.lookup(/jdbc/books);connection=source.getConnection();这是什么错误?这是什么错误?参数错误,应该是参数错误,应该是 java:comp/env/jdbc/books JNDI小结如何配置如何配置JNDI?如何通过如何通过JNDI获得数据库连接对象?获得数据库连接对象?JNDI相比相比JDBC有

13、什么优点?有什么优点?数据库的配置q 关于数据库的配置q把配置信息写在代码中q把配置信息存储在.properties文件中private static final String DATASOURCE=jdbc:odbc:NewsDataSource;private static final String DRIVER_CLASS=com.microsoft.jdbc.sqlserver.SQLServerDriver;private static final String DATABASE_URL=jdbc:microsoft:sqlserver:/localhost:1433;Databas

14、eName=books;private static final String DATABASE_USRE=sa;private static final String DATABASE_PASSWORD=;public static Connection getConnction()Connection dbConnection=null;try Class.forName(DRIVER_CLASS);dbConnection=DriverManager.getConnection(DATABASE_URL,DATABASE_USRE,DATABASE_PASSWORD);catch(Exc

15、eption e)e.printStackTrace();return dbConnection;数据库的配置信息数据库的配置信息如果数据库信息改变,要重新如果数据库信息改变,要重新进行编译,程序才能正确执行。进行编译,程序才能正确执行。url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=booksuser=sapassword=120010以键值对的形式存储以键值对的形式存储数据,中间用数据,中间用=分分隔隔db.properties基于属性文件的数据库配置q 从属性文件中读取配置信息public static Connecti

16、on getConnection()String driverClassName=Env.getInstance().getProperty(driver);String url=Env.getInstance().getProperty(url);String password=Env.getInstance().getProperty(password);String user=Env.getInstance().getProperty(user);Connection con=null;try Class.forName(driverClassName);con=DriverManage

17、r.getConnection(url,user,password);catch(Exception e)e.printStackTrace();return con;ConnectionManager.java数据库的配置信息是如何读取的呢public final class Env extends Properties private static Env instance;public static Env getInstance()if(instance!=null)return instance;else makeInstance();return instance;private

18、static synchronized void makeInstance()if(instance=null)instance=new Env();private Env()InputStream is=getClass().getResourceAsStream(/db.properties);try load(is);catch(Exception e)e.printStackTrace();Java用来操作用来操作.properties文件的类文件的类静态方法可以通过类名直接调用静态方法可以通过类名直接调用同步方法,在同一时间,只允许同步方法,在同一时间,只允许一个人调用,保证安全性一

19、个人调用,保证安全性把把.properties文件内容加裁到对象中文件内容加裁到对象中总结为什么使用为什么使用JNDI?到目前为止到目前为止连接数据库连接数据库有几种方式?有几种方式?说明从说明从.properties文件中读取数据的步骤文件中读取数据的步骤,22 小结 2使用会话事件监听技术,完成对于会话事件监听的类(MySessionListener.java)。1、建立会话事件监听类(MySessionListener.java)并实现ervletRequestListener,ServletRequestAttributeListener 接口。2、完成测试会话事件监听的JSP页面(l

20、istener_session.jsp)。3、将事件监听配置在Web.xml中。8分钟时间分钟时间23什么是过滤器,它的作用是什么?什么是过滤器,它的作用是什么?过滤器实质就是一个实现了相应接口(javax.servlet.Filter)的Java类,它处于客户端和web资源(Jsp、Servlet等)之间,用于对请求或者响应进行拦截,添加一些额外的处理。过滤器的优点是什么?过滤器的优点是什么?过滤器以一种模式化的或可重用的方式封装公共的行为。利用过滤器能够将高级决策与表现代码分离。过滤器能够对于不同的资源进行批量性的修改。实现过滤器的步骤是什么?实现过滤器的步骤是什么?建立一个实现Filter接口的类,并实现相应方法。在web.xml中对过滤器进行配置。本章总结24Servlet事件监听按照监听对象来分类可分为哪三类?事件监听按照监听对象来分类可分为哪三类?Servlet上下文事件监听会话事件监听请求事件监听实现事件监听器的步骤是什么?实现事件监听器的步骤是什么?编写Java类,实现相应的监听器接口。在web.xml中,对自定义的监听器进行注册。本章总结25作业必做题家庭作业预习作业提交方式电子邮件,命名格式:班级+姓名+课程名+章节名.rar提交时间下次上课之前26IT之行,始于足下

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档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