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

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

《JavaWeb第六章连接池与数据源.ppt》由会员分享,可在线阅读,更多相关《JavaWeb第六章连接池与数据源.ppt(26页珍藏版)》请在三一办公上搜索。

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

2、ctory Interface)是用于向Java程序提供目录和命名功能的API。配置数据源时,需要修改Tomcat服务器的安装目录的conf下的哪个文件?Context.xml文件,本章任务,在第三章的分页标签的基础上,5,会使用JNDI获取数据源理解数据库连接池会读取基于属性文件的数据库配置信息掌握通用的DAO类,本章目标,MVC的Model层,1、如何理解MVC中的Model?,MVC设计模式模型-Model视图-View控制器-Controller,MVC 对象,控制器,模型,视图,?,JSP,Servlet,Model层主要是进行业务逻辑处理、访问数据库和封装数据,企业级开发对Mode

3、l层的要求,企业级开发需要稳健和高效的数据访问层完成对数据库的CRUD操作能够处理数据库发生的各种错误可以灵活的修改配置提供方便使用的工具高性能,数 据 库,请求,响应,操作,结果,要求高效、稳健的数据访问层,打开连接,操作数据库,关闭连接,多次重复操作,传统的JDBC已经无法满足需求,那怎么办呢?,数据库连接池(2-1),普通电话-建立连接,等待回应热线电话-已建立连接,连接,已连接,开始通话,开始通话,已连接,直接通话,连接中,流程框架图标使用规范,连接池中的连接,数 据 库,想要获得连接,返回一个连接,返回一个已连接好的空闲连接,应用程序从连接池中获得连接,连接池是由容器提供的,用来管理

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

5、和目录服务的API接口的lookup()方法,应用程序,jdbc/s1,jdbc/s2,数据源,数据源名称,Connection,context.lookup(jdbc/s1),使用JNDI获取连接对象,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

6、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 exception)exception

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

8、据库驱动文件把数据库驱动的.jar文件,加入到Tomcat的commonlib中应用程序的web.xml文件的配置在web.xml中配置,jdbc/books javax.sql.DataSource Container,指定JNDI的名字,与元素中的name一致,指定引用资源的类名,与元素中的type一致,指定管理所引用资源的Manager与元素中的auth一致,常见错误,1、Cannot load JDBC driver class,这是什么错误?,通过数据源访问数据库,由于数据源由Tomcat创建并维护,所以必须把JDBC驱动程序拷贝到Tomcat的common/lib目录下。,代码框图

9、标使用规范,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);,要一致,这是什么错误?,TitlesBean.java,context.xml,常见错误,3、Name jdbc is not bound in t

10、his Context,DataSource source=(DataSource)ic.lookup(/jdbc/books);connection=source.getConnection();,这是什么错误?,参数错误,应该是 java:comp/env/jdbc/books,JNDI小结,如何配置JNDI?如何通过JNDI获得数据库连接对象?JNDI相比JDBC有什么优点?,数据库的配置,关于数据库的配置把配置信息写在代码中把配置信息存储在.properties文件中,private static final String DATASOURCE=jdbc:odbc:NewsDataSo

11、urce;private static final String DRIVER_CLASS=com.microsoft.jdbc.sqlserver.SQLServerDriver;private static final String DATABASE_URL=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=books;private static final String DATABASE_USRE=sa;private static final String DATABASE_PASSWORD=;public static Co

12、nnection getConnction()Connection dbConnection=null;try Class.forName(DRIVER_CLASS);dbConnection=DriverManager.getConnection(DATABASE_URL,DATABASE_USRE,DATABASE_PASSWORD);catch(Exception e)e.printStackTrace();return dbConnection;,数据库的配置信息,如果数据库信息改变,要重新进行编译,程序才能正确执行。,url=jdbc:microsoft:sqlserver:/loc

13、alhost:1433;DatabaseName=booksuser=sapassword=120010,以键值对的形式存储数据,中间用=分隔,db.properties,基于属性文件的数据库配置,从属性文件中读取配置信息,public final class Env extends Properties private static Env instance;public static Env getInstance()if(instance!=null)return instance;else makeInstance();return instance;private static sy

14、nchronized 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文件的类,静态方法可以通过类名直接调用,同步方法,在同一时间,只允许一个人调用,保证安全性,把.properties文件内容加裁到对象中,总结,为什么使用JNDI?到目前为止连

15、接数据库有几种方式?说明从.properties文件中读取数据的步骤,22,小结 2,使用会话事件监听技术,完成对于会话事件监听的类(MySessionListener.java)。1、建立会话事件监听类(MySessionListener.java)并实现ervletRequestListener,ServletRequestAttributeListener 接口。2、完成测试会话事件监听的JSP页面(listener_session.jsp)。3、将事件监听配置在Web.xml中。,8分钟时间,23,什么是过滤器,它的作用是什么?过滤器实质就是一个实现了相应接口(javax.servle

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号