《JavaWeb开发》PPT课件
合集下载
JAVAweb开发ppt课件
精选课件ppt
20
3.2.2 会话管理机制
(2)当服务器向客户发送响应时,服务器将 该会话ID与响应数据一起发送给客户,这 是通过Set-Cookie响应头实现的,响应 消息可能为:
HTTP/1.1 200 OK Set-Cookie:JSESSIONID=61C4F23524521390E70993E
第3章 Servlet
精选课件ppt
1
本章内容
• 3.1 ServletContext接口 • 3.2 会话管理 • 3.3 Cookie及其应用
精选课件ppt
2
3.1 ServletContext接口
• 3.1.1 得到ServletContext引用 • 3.1.2 获取应用程序的初始化参数 • 3.1.3 通过ServletContext对象获得资源 • 3.1.4 登录日志 • 3.1.5 用RequestDispatcher实现请求转发 • 3.1.6 使用ServletContext对象存储数据 • 3.1.7 检索Servlet容器的信息
• HTTP协议是一种无状态的协议,HTTP服务 器对客户的每个请求和响应都是作为一个 分离的事务处理。服务器无法确定多个请 求是来自相同的客户还是不同的客户。这 意味着服务器不能在多个请求中维护客户 的状态。
精选课件ppt
17
3.2.1 理解状态与会话
• 会话(session)是一个客户与服务器之 间的不间断的请求响应序列。
POST /helloweb/selectProduct.do HTTP/1.1
Host:
Cookie: JSESSIONID=61C4F23524521390E70993E512 0263C6
JavaWeb开发(课堂PPT)
.
12
HttpServletRequest常用API
HttpServletRequest的常用方法有:
获取单值请求参数的方法:getParamter(); 获取多值请求参数的方法:getParameterValues(); 获取请求参数名字的方法:getParameterNames(); 获取session对象的方法:getSession(); 获取Web应用根路径的方法:getContextPath(); 获取Servlet路径的方法:getServletPath(); 获取request中的属性的方法:getAttribute(); 设置request中的属性的方法:setAttribute(); 获取请求转发对象的方法:getRequestDispatcher();
使用JDK中的javac命令编译 。
.
15
2.4开发Servlet基本流程
(3)配置Servlet
Servlet编写完之后,作为Web应用的组成部分,需要在配置文件 web.xml中进行配置。
<servlet>
<servlet-name>Servlet的名称</servlet-name>
<servlet-class>Servlet类的全路径</servlet-class>
.
9
2.4开发Servlet基本流程
开发一个Servlet程序基本包括以下几步:
(1)编写Servlet
引入用到的包,需要的导入的包有:javax.servlet.*, javax.servlet.http.*等
定义类的基本框架并继承HttpServlet
重写成员方法。如果需要对Servlet进行初始化,需 要重写init方法。如果需要在卸载Servlet的时候执行 一些功能,可以重写destory方法。一般情况下,根 据需要完成的功能只需要重写服务类方法即可。服 务类方法包括doGet方法和doPost方法等。
JAVAweb开发课件
ServletContextListener ServletContextAttributeLis tener ServletRequestListener ServletRequestAttributeLis tener SingleThreadModel
提供服务器响应的对象
用于监听Web应用程序的监听器接口 用于监听Web应用程序属性的监听器接口 用于监听请求对象的监听器接口 用于监听请求对象属性的监听器接口 实现单线程的接口,已不推荐使用
2.2.3 为客户提供服务
• Servlet使用响应对象(response)获 得输出流对象,调用有关方法将响应发送 给客户浏览器。 • 之后,线程将被销毁或者返回到容器管理 的线程池。请求和响应对象已经离开其作 用域,也将被销毁。最后客户得到响应。
2.2.4 销毁和卸载Servlet
• 当容器决定不再需要Servlet实例时,它 将在Servlet实例上调用destroy()方法, Servlet在该方法中释放资源,如它在 init()方法中获得的数据库连接。一旦该 方法被调用,Servlet实例不能再提供服 务。 • 一旦Servlet实例被销毁,它将作为垃圾 被回收。如果Web容器关闭,Servlet也 将被销毁和卸载。
4. ServletRequest接口
• ServletRequest接口是独立于任何协议 的请求对象,定义了获取客户请求信息的 方法,如getParameter()、 getProtocol()、getRemoteHost()等。
5. ServletResponse接口
• ServletResponse接口是独立于任何协 议的响应对象,定义了向客户发送响应的 方法,如setContentType()方法、 sendRedirect()方法、getWriter() 方法等。
提供服务器响应的对象
用于监听Web应用程序的监听器接口 用于监听Web应用程序属性的监听器接口 用于监听请求对象的监听器接口 用于监听请求对象属性的监听器接口 实现单线程的接口,已不推荐使用
2.2.3 为客户提供服务
• Servlet使用响应对象(response)获 得输出流对象,调用有关方法将响应发送 给客户浏览器。 • 之后,线程将被销毁或者返回到容器管理 的线程池。请求和响应对象已经离开其作 用域,也将被销毁。最后客户得到响应。
2.2.4 销毁和卸载Servlet
• 当容器决定不再需要Servlet实例时,它 将在Servlet实例上调用destroy()方法, Servlet在该方法中释放资源,如它在 init()方法中获得的数据库连接。一旦该 方法被调用,Servlet实例不能再提供服 务。 • 一旦Servlet实例被销毁,它将作为垃圾 被回收。如果Web容器关闭,Servlet也 将被销毁和卸载。
4. ServletRequest接口
• ServletRequest接口是独立于任何协议 的请求对象,定义了获取客户请求信息的 方法,如getParameter()、 getProtocol()、getRemoteHost()等。
5. ServletResponse接口
• ServletResponse接口是独立于任何协 议的响应对象,定义了向客户发送响应的 方法,如setContentType()方法、 sendRedirect()方法、getWriter() 方法等。
《JavaWeb课件开发详解PPT》
《Java Web课件开发详解 PPT》
欢迎来到《Java Web课件开发详解PPT》。这个课件将帮助你了解Java Web开发的核心概念、技术和实际应用案例,以及未来的趋势。
课件目的
全面指导
为学习Java Web开发提供全 面而深入的指导。
实战案例
通过实际案例帮助学生将理 论应用到实践中。
深入解析
响应式设计
开发响应式设计的Java Web 应用程序,以适应不同大小 和类型的设备。
人工智能
运用人工智能技术改进Java Web应用程序的功能,提供 更智能的用户体验。
基本概念
1
前端开发
了解前端开发的基本概念,包括HTML、CSS和JavaScript。
2
后端开发
了解后端开发的基本概念,包括Java和数据库管理。
3
Web服务器
学习Web服务器的原理和功能,如Apache Tomcat。
核心技术
Java Servlet
使用Java Servlet处理来自Web 浏览器的请求和响应。
注意事项
1 安全应用 程序的安全性,避免潜在的 漏洞。
优化Java Web应用程序的性 能,提高响应速度和用户体 验。
3 维护和更新
定期维护和更新Java Web应用程序,以保持其正常运行。
未来趋势
云计算
Java Web开发将更多地与云 计算技术结合,实现更高的 可扩展性和灵活性。
JSP
MVC模式
学习使用JSP创建动态Web页面。 了解MVC模式的概念和应用。
实际案例
1
电子商务平台
开发一个电子商务平台,包括用户登录、
社交媒体应用
2
商品浏览和购物车功能。
欢迎来到《Java Web课件开发详解PPT》。这个课件将帮助你了解Java Web开发的核心概念、技术和实际应用案例,以及未来的趋势。
课件目的
全面指导
为学习Java Web开发提供全 面而深入的指导。
实战案例
通过实际案例帮助学生将理 论应用到实践中。
深入解析
响应式设计
开发响应式设计的Java Web 应用程序,以适应不同大小 和类型的设备。
人工智能
运用人工智能技术改进Java Web应用程序的功能,提供 更智能的用户体验。
基本概念
1
前端开发
了解前端开发的基本概念,包括HTML、CSS和JavaScript。
2
后端开发
了解后端开发的基本概念,包括Java和数据库管理。
3
Web服务器
学习Web服务器的原理和功能,如Apache Tomcat。
核心技术
Java Servlet
使用Java Servlet处理来自Web 浏览器的请求和响应。
注意事项
1 安全应用 程序的安全性,避免潜在的 漏洞。
优化Java Web应用程序的性 能,提高响应速度和用户体 验。
3 维护和更新
定期维护和更新Java Web应用程序,以保持其正常运行。
未来趋势
云计算
Java Web开发将更多地与云 计算技术结合,实现更高的 可扩展性和灵活性。
JSP
MVC模式
学习使用JSP创建动态Web页面。 了解MVC模式的概念和应用。
实际案例
1
电子商务平台
开发一个电子商务平台,包括用户登录、
社交媒体应用
2
商品浏览和购物车功能。
JAVAweb开发课件
1.1.4 服务器和浏览器
• 在万维网上,如果一台连接到Internet的 计算机希望给其他Internet系统提供信息, 则它必须运行服务器软件,这种软件称为 Web服务器。 • 对Web系统来说,客户软件通常是Web浏览 器。
1.Web服务器
• Web服务器是向浏览器提供服务的程序,主 要功能是提供网上信息浏览服务。Web服务 器应用层使用HTTP协议,信息内容采用 HTML文档格式,信息定位使用URL。 • 最常用的Web服务器是Apache服务器,它 是Apache软件基金会(Apache Software Foundation)提供的开放源 代码软件,是一个非常优秀的专业的Web服 务器。
1.1.2 域名和DNS
• 不管用哪种方法表示IP地址,这些数字都 很难记住,为了方便人们的记忆,在 Internet中经常使用域名来表示主机。域 名(domain name)是由一串用点分隔的 名字组成的某一台主机或一组主机的名称, 用于在数据传输时标识主机的位置。 • 域名系统采用分层结构 ,例如, 是一个域名
1.3.2 静态文档和动态文档
• Web文档是一种重要的Web资源,它通常是 使用某种语言(如HTML,JSP等)编写的 页面文件,因此也称为Web页面。Web文档 又分为静态文档和动态文档。 • 在Web发展的早期,Web文档只是一种以文 件的形式存放在服务器端的文档。客户发 出对该文档的请求,服务器返回这个文件。 这种文档称为静态文档(static document)。
URI
• URI(Uniform Resource Identifier)称为统一资源标识符,是 以特定语法标识一个资源的字符串。 • URI由模式和模式特有的部分组成,它们之 间用冒号隔开,一般格式如下: schema:schema-specific-part • URI的常见模式包括:file(表示本地磁 盘文件)、ftp(FTP服务器)、http (使用HTTP协议的Web服务器)、mailto (电子邮件地址)等。
JAVAweb开发课件
5.3.3 访问集合元素
(1)如果attributeName对象是数组,则 entryName为下标。上述表达式返回指定下标的 元素值。下面代码演示了访问数组元素。 <% String[] fruit = {"apple","orange","banana"}; request.setAttribute("myFruit", fruit); %> My favorite fruit is:${myFruit[2]} • 上面一行还可以写成: My favorite fruit is:${myFruit["2"]}
2. 方括号([])运算符
• 程序5.1 eloperator.jsp • 为了在JSP页面中输出文本${2+5},需要在 “$”符号前使用转义字符“\”,否则将输出 EL表达式的值。
5.3 使用EL访问数据
• • • • 5.3.1 5.3.2 5.3.3 5.3.4 访问作用域变量 访问JavaBeans属性 访问集合元素 访问EL的隐含变量
第5章 表达式语言
本章内容
• 5.1 理解表达式语言 • 5.2 使用EL运算符 • 5.3 使用EL访问数据
5.1 理解表达式语言
• EL并不是一种通用的编程语言,它仅仅是 一种数据访问语言。网页作者通过它可以 很方便地在JSP页面中访问应用程序数据, 无需使用小脚本(<%和%>)或JSP请求时表达 式(<%=和%>),甚至不用学习Java语言就可 以使用表达式语言。 • 作为一种数据访问语言,EL具有自己的运 算符、语法和保留字。作为JSP开发员,我 们的工作是创建EL表达式并将其添加到JSP 的响应中。
《JavaWeb开发工程师课程讲义PPT课件》
安装和配置Tomcat
演示如何下载、安装和配 置Tomcat服务器。
Tomcat管理界面
介绍Tomcat的管理界面和 常用功能。
Spring MVC框架概述
1
架构原理
2
深入了解Spring MVC的架构原理和
工作流程。
3
什么是Spring MVC
解释Spring MVC框架的定义和特点。
控制器
介绍如何创建和配置Spring MVC控 制器。
Hibernate框架概述
什么是Hibernate
详细介绍Hibernate框架的定义、作用和优势。
ORM映射
阐述Hibernate的ORM(对象关系映射)技术和 如何使用注解进行映射。
HQL查询
演示如何使用Hibernate Query Language进行 数据库查询。
缓存和性能优化
详细说明如何利用Hibernate的缓存机制来提高 应用程序的性能。
演示如何使用Servlet来 处理HTML表单数据。
JSP技术介绍
1 什么是JSP
解释JSP的定义、作用 和优势。
2 JSP原理
详细介绍JSP的工作原 理,包括JSP的编译和 执行过程。
3 标签库
介绍常用的JSP标签库, 如JSTL、EL表达式等。
Tomcat服务器概述
Tomcat基本信息
提供Tomcat服务器的概述 和特点。
Java Web开发环境搭建
IDE选择
比较不同开发工具的优缺点,如Eclipse、 IntelliJ IDEA、NetBeans等。
安装JDK
详细介绍如何安装Java Development Kit (JDK)。
配置Tomcat服务器
JAVAweb开发课件
9.2
安全域模型
• 9.2.1 安全域概述 • 9.2.2 定义角色与用户
9.2.1 安全域概述
• 安全域是Web服务器保护Web资源的一种机 制。所谓安全域(realm)是标识一个Web 应用程序的合法的用户名和口令的“数据 库”,其中包括与用户相关的角色。 • 角色的概念来自于现实世界,例如,一个公 司可能只允许销售经理访问销售数据,而销 售经理是谁没有关系。实际上,销售经理可 能更换。任何时候,销售经理实际是一个充 当销售经理角色的用户。
2. <login-config>元素
• 下面是web.xml的代码片段,它是BASIC验 证机制的配置。 <login-config> <auth-method>BASIC</auth-method> <realm-name>Security Test</realm-name> </login-config>
<user-data-constraint>元素
• 该元素指定数据应该如何在客户与服务器 之间传输,它的DTD定义: <!ELEMENT user-data-constraint (description?, transport-guarantee)> • transport-guarantee元素指定数据传输的 方式,它的取值为下面三者之一:NONE、 INTEGRAL或CONFIDENTIAL。
通过JNDI provider访问存放在基于LDAP的目录服务器中的安全验证信 息
通过JAAS(Java验证授权服务)框架访问验证信息
9.2.1 安全域概述
• 不管使用哪一种安全域模型,都要包含下 列步骤。 (1)定义角色、用户以及用户与角色的映 射。 (2)为Web资源设置安全约束。
JAVAweb开发课件
11
3.1.6 使用ServletContext对象存储数据
• 使用ServletContext对象也可以存储数 据,该对象也是一个作用域对象,它的作 用域是整个应用程序。在 ServletContext接口中也定义了4个处 理属性的方法.
• public void setAttribute(String name, Object object):将给定名称的属性值对象绑定到上下文 对象上。
ServletContext context = getServletContext(); String email =
context.getInitParameter("adminEmail");
8
3.1.3通过ServletContext对象获得资源
• public URL getResource(String path):返回由给 定路径指定的资源的URL对象。
• public void log(String msg, Throwable throwable): 将msg指定的消息和异常的栈跟踪信息写入日志 文件。
10
3.1.5 用RequestDispatcher实现请求转发
• 使用ServletContext接口的下列两个方 法也可以获得RequestDispatcher对象, 实现请求转发。
4
3.1.1 得到ServletContext引用
• 在Servlet中有两种方法得到 ServletContext引用。
1. 直接调用getServletContext()方法,
ServletContext context = getServletContext();
2. 先得到ServletConfig引用,再调用它 的getServletContext()方法,
3.1.6 使用ServletContext对象存储数据
• 使用ServletContext对象也可以存储数 据,该对象也是一个作用域对象,它的作 用域是整个应用程序。在 ServletContext接口中也定义了4个处 理属性的方法.
• public void setAttribute(String name, Object object):将给定名称的属性值对象绑定到上下文 对象上。
ServletContext context = getServletContext(); String email =
context.getInitParameter("adminEmail");
8
3.1.3通过ServletContext对象获得资源
• public URL getResource(String path):返回由给 定路径指定的资源的URL对象。
• public void log(String msg, Throwable throwable): 将msg指定的消息和异常的栈跟踪信息写入日志 文件。
10
3.1.5 用RequestDispatcher实现请求转发
• 使用ServletContext接口的下列两个方 法也可以获得RequestDispatcher对象, 实现请求转发。
4
3.1.1 得到ServletContext引用
• 在Servlet中有两种方法得到 ServletContext引用。
1. 直接调用getServletContext()方法,
ServletContext context = getServletContext();
2. 先得到ServletConfig引用,再调用它 的getServletContext()方法,
《JavaWeb课件PPT》
JavaWeb的优势
JavaWeb具有跨平台性、 高效性、可扩展性和安全 性等优点,使其成为开发 企业级应用的首选技术。
主要组件
JavaWeb由Servlet、JSP、 JDBC等技术组成,每个组 件都有其独特的功能和用 途。
环境搭建
1 安装JDK
2 配置开发环境
为了编写和运行JavaWeb应 用程序,您需要在计算机上 安装Java Development Kit (JDK)。
AJAX可用于向服务器发送请 求并获取响应数据,通常使用 JSON或XML格式进行数据交 换。
使用jQuery
jQuery是一个流行的 JavaScript库,提供了丰富的 AJAX功能和简化的API。
JSTL是JavaServer Pages 标准标签库,提供了一组 丰富的标签和函数,用于 在JSP页面中简化逻辑。
常用JSTL标签
JSTL标签包括条件判断、 循环、格式化、数据访问 等,可以减少在JSP页面 中编写大量的Java代码。
使用JSTL
通过导入JSTL库文件和在 JSP页面中引入JSTL标签 库,您可以开始使用JSTL 来增强页面功能。
2
XML在Web应用中的应用
XML可用于定义配置文件、数据传输和Web服务等方面,具有简单、可读性高等特点。
3
常用的XML技术
常用的XML技术包括XML解析、XSLT转换、XPath查询和XML Schema验证等。
AJAX技术
什么是AJAX
数据交互
AJAX是Asynchronous JavaScript and XML的缩写, 通过在后台与服务器进行数据 交互,实现异步更新页面内容。
JSP标签库包含了一组自定义 标签,可以简化在JSP页面中 表达业务逻辑的编写。
JAVAweb开发课件
2. 处理会话属性事件
• 当在会话对象上添加属性、删除属性、替换属性 时将发生HttpSessionBindingEvent事件,处理该事 件需使用HttpSessionAttributeListener接口,该接口 定义了下面三个方法:
• public void attributeAdded(HttpSessionBindingEvent se):
2. 处理ServletRequestAttributeEvent事件
• 在请求对象上添加、删除和替换属性时将发生 ServletRequestAttributeEvent事件,处理该类事件需要 使用ServletRequestAttributeListener接口,它定义了如 下三个方法。
• public void attributeAdded(ServletRequestAttributeEvent src):当在请求对象中添加属性时调用该方法。 • public void attributeRemoved (ServletRequestAttributeEvent src):
8.1 Web监听器
• 在Servlet 3.0 API中定义了7个事件类和9个 监听器接口,根据监听器所监听事件的类 型和范围,可以把它们分为三类: – ServletContext事件监听器 – HttpSession事件监听器 – ServletRequest事件监听器
8.1.1 监听ServletContext事件
• 上述方法的参数是一个ServletContextEvent事 件类对象,该类只定义了一个方法,如下所示。 public ServletContext getServletContext() • 该方法返回状态发生改变的ServletContext对象
《JavaWeb开发课件》
性能优化与安全防范
1
安全防范
2
介绍常见的Web应用安全威胁和防范方法。
3
性能优化
如何优化Web应用的性能,提升用户体验。
代码优化
优化JavaWeb应用的代码质量和可维护性。
框架概述
介绍Struts2框架的优势和特 点。
用户界面开发
使用Struts2开发用户界面和 表单。
数据绑定和验证
处理数据绑定和验证的流程 和方法。
AJAX与JSON
AJAX技术
使用AJAX实现异步请求和响应。
JSON格式
使用JSON格式进行数据交换和 传输。
前端库与框架
介绍常用的前端库和框架,如 jQuery和Vue.js。
核心标签
• JSP变量和流程控制 • 输出和格式化 • 循环和条件
表单标签
• 表单输入和验证 • 下拉菜单和复选框 • 文件上传
SQL标签
• 数据库连接和查询 • 事务管理 • 结果集处理
JSTL标签库
1
核心标签
循环和条件处理
格式化标签
2
日期、数字和货币的格式化
3
XML标签
XML文档处理
Databas标签
程序设计基础
1
面向对象
介绍面向对象编程(OOP)的基本概念和
数据结构与算法
2
原则。
讨论常用的数据结构和算法,以加深编
程技能。
3
异常处理
解释如何使用异常处理机制来优化代码 的可靠性。
Servlet与JSP基础
Servlet
学习Servlet的基本概念和生命周 期,以及如何处理HTTP请求和响 应。
To mcat服务器
《JavaWeb开发》PPT课件
JDBC概述
• JDBC允许大型应用程序把数据写到JDBC 接口上,通过接口与数据库交换信息。因 而编程人员不必太关心与该应用程序一起 使用的是那种数据库
JDBC概述
• 一个完整的JDBC应用由三部分组成 驱动程序
驱动程序管理器 应用程序
JDBC概述
• JDBC的四类驱动 1. JDBC-ODBC桥加ODBC驱动程序
记录集对象
• 从数据库emp表中读取员工的编号(empno) 和姓名(ename)
Statement stmt = con.createStatement(); String query = "SELECT empno,ename FROM EMP"; stmt.execute(query); ResultSet rs = stmt.getResultSet();
描述
指定ResultSet对象不能修改数据库
CONCUR_UPDATABLE
指定ResultSet对象可以修改数据库
指定以上两种模式时要求select语句不能带 * 号
特殊记录集
• 可滚动、可更新记录集可以使用的移动记录集指 针的方法
next() 移动到记录集的下一条,没有返回false,否则返回true previous() 移动到前一条记录 first() 移动到第一条记录 last() 移动到最后一条记录 absolute(int rowNumber) 移动到rowNumber指定的行 relative(int relativeRowNumber) 移动到相对于当前纪录位置的某一行
说明
数据库驱动程序注册
• 加载桥驱动程序并注册
//加载驱动程序类 Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); //注册驱动程序 DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
描述
指定ResultSet对象不能修改数据库
CONCUR_UPDATABLE
指定ResultSet对象可以修改数据库
指定以上两种模式时要求select语句不能带 * 号
特殊记录集
• 可滚动、可更新记录集可以使用的移动记录集指 针的方法
next() 移动到记录集的下一条,没有返回false,否则返回true previous() 移动到前一条记录 first() 移动到第一条记录 last() 移动到最后一条记录 absolute(int rowNumber) 移动到rowNumber指定的行 relative(int relativeRowNumber) 移动到相对于当前纪录位置的某一行
• •
可使用updateXXX方法对指定字段进行更新 使用updateRow()方法将修改发送到数据库
特殊记录集
• 对于可更新结果集使用的查询的限制: 只能使用一个表 必须选择这个表的主键和所有其他NOT NULL列 不能使用ORDER BY子句 必须只选择列值,不能包含计算列 不能使用SELECT *。你必须分别指定列, 或者使用表别名,如
String name = rs.getString(2) ; if( rs.wasNull()) name = "" ; name = name.toUpperCase();
处理异常
1. 当数据库或JDBC驱动程序中发生错误时, 将抛出一个java.sql.SQLException 2. SQLException类是Exception类的子类 3. 必须使用try—catch对该异常进行处理 4. SQLException类定义了2个方法,它们有助 于查找造成异常的原因 getErrorCode() 返回错误编号 getMessage() 返回错误消息
•
J2EE的商业开发通常会搭配Oracle数据库
//加载oracle驱动程序 Class.forName( "oracle.jdbc.driver.OracleDriver" ); //注册 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver ()); 当一个JDBC驱动程序类被加载时会自动向DriverManager 注册自己, 所以这里可以省略注册的语句:DriverManager.registerDriver(…);
JDBC概述
• JDBC允许大型应用程序把数据写到JDBC 接口上,通过接口与数据库交换信息。因 而编程人员不必太关心与该应用程序一起 使用的是那种数据库
JDBC概述
• 一个完整的JDBC应用由三部分组成 驱动程序
驱动程序管理器 应用程序
JDBC概述
• JDBC的四类驱动 1. JDBC-ODBC桥加ODBC驱动程序
Connection con = DriverManager.getConnection("jdbc:odbc:wish_weas","scott","tiger");
•
oracle thin 驱动
Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:weas" , "scott" , "tiger" );
基本数据库访问
• java.sql包
接口(类)名
Connection Statement PreparedStatement CallableStatement ResultSet DriverManager Date …… 此接口表示与数据的连接 此接口执行 SQL 语句并将数据检索到 ResultSet 中 此接口执行预编译的 SQL 语句 此接口执行已存储过程 此接口表示了查询出来的数据库数据结果集 此类加载和卸载各种驱动程序并建立与数据库的连接 此类包含将 sql日期格式转换成java日期格式的各种方法 ……
特殊记录集
• 可滚动、可更新记录集
记录集类型
TYPE_FORWARD_ONLY TYPE_SCROLL_SENSITIVE 不可滚动 可滚动,但能看到外部对数据库的修改
描述
TYPE_SCROLL_INSENSITIVE 可滚动,但看不到外部对数据库的修改
记录集并发性
CONCUR_READ_ONLY
记录集对象
• 从数据库emp表中读取员工的编号(empno) 和姓名(ename)
Statement stmt = con.createStatement(); String query = "SELECT empno,ename FROM EMP"; stmt.execute(query); ResultSet rs = stmt.getResultSet();
作业与预习
1. 2. 3. 4. 作业。。。 预习。。。 回顾安排。。。 实验安排。。。
特殊记录集
• 返回结果记录集分为两大类 仅向前、不可更新记录集
Statement stmt = Con.createStatement(); ResultSet rs = stmt.executeQuery("select empno,ename from emp ");
可滚动、可更新记录集
Statement stmt = Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); ResultSet rs = stmt.executeQuery("select empno,ename from emp ");
rs.next(); //当前记录指针移动到下一条记录上
2. 当前记录字段值获取方法 getXXX
String name = rs.getString ("ename"); //通过字段名访问 String name = rs.getString(2); //通过字段位置访问
3. 更新当前字段值的方法 updateXXX
• •
执行INSERT、UPDATE或者DELETE语句
stmt.executeUpdate(query); //query为所要执行的sql语句
执行SELECT语句
ResultSet rs = stmt.executeQuery(query); //rs为记录集对象
记录集对象
• • ResultSet接口来操纵结果集中的记录 ResultSet对象主要提供三大类方法 1. 当前记录指示器移动方法
while(rs.next()) { int i = rs.getInt(1); //得到当前记录的第一个字段(empno)的值 String name = rs.getString(2); //得到第二个字段(ename)的值 System.out.println(Integer.toString(i) + " " + name); }
处理异常
• 捕获并处理SQLException
try { //在 tiger 中多加一个 g con=DriverManager.getConnection( url, "scott", "tigger" ); …… } catch(SQLException e) { if( e.getErrorCode() == 1017 ) { System.out.println("登录用户名/密码错误"); }else{ System.out.println( e.getMessage() ); } }
说明
数据库驱动程序注册
• 加载桥驱动程序并注册
//加载驱动程序类 Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); //注册驱动程序 DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
•
oracle oci 驱动
Connection con = DriverManager.getConnection("jdbc:oracle:oci:@weas", "scott", "tiger");
语句对象
• 创建Statement对象
Statement stmt = conn.createStatement();
SELECT customers.* from customers
特殊处理
• 处理数据库中的null值
String name = rs.getString(2); name = name.toUpperCase();
• •
如果name获得的是null值,则第二句调用方法时 出现异常。 ResultSet的wasNull()方法可以检测上一个获取的 字段值是否为空
更多信息
1. JDBC API的主要接口包括Connection、 Statement和ResultSet接口 2. 注册一个驱动,建立起连接对象,在这个 连接对象的基础上执行SQL语句,返回纪 录集,然后利用getXXX方法获得数据。 3. 记录集包括仅向前、不可更新记录集和可 滚动、可更新记录集 4. ResultSet的wasNull方法可以检测数据库字 段的空值。 5. 通过捕获SQLException来处理数据库异常
第三章
JDBC(一)
目标
1. 2. 3. 4. 了解JDBC的四类驱动 理解JDBC的访问方式 掌握基本数据库访问 理解JDBC中异常