第9章 JDBC
- 格式:doc
- 大小:324.50 KB
- 文档页数:31
JSP课后习题参考答案●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
2. 简述JSP两种体系结构。
答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。
尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。
不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。
尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。
从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。
Model2体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。
它吸取了两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。
Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页面传给请求者。
在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,从Servlet中提取动态内容插入静态模板。
分离了显示和内容,明确了角色的定义以及实现了开发者与网页设计者的分开。
项目越复杂,使用Model 2体系结构的优势就越突出。
第1章 Web应用开发简介习题答案1.Web在组成上包括______和______两部分。
答案:服务器客户端2.谈谈对面向对象的认识。
答案:面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。
面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。
面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。
3.介绍几种常用的框架技术。
答案:Java中常用的框架。
1.StrutsStruts是Apac he 基金会Jak arta项目组的一个开源项目,是一个基于S u n J2EE平台的MVC框架,它将Serv let和J SP标签作为实现自身功能的一部分。
2.WebWorkWebWork是由OpenSym phony组织开发的,是一个基于W e b的MV C框架。
它在运行时通过Inte rcept or(拦截器)自动应用,因此脱离了A ction类。
3.Struts 2Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与Web Work框架基础之上,继承了二者的优点,是目前非常流行的一个W e b框架。
4.SpringSpring是一个以IoC和AO P为核心的轻量级容器框架。
它提供了一系列的Jav a EE开发解决方案,包括表示层的S prin g MVC、持久层的Sp ring JDBC以及业务层事务管理等众多的企业级应用技术。
5.Hibern ateHibern ate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。
目录第1部分课程的教与学第2部分各章习题解答及自测题第1章数据库概论1.1 基本内容分析1.2 教材中习题1的解答1.3 自测题1.4 自测题答案第2章关系模型和关系运算理论2.1基本内容分析2.2 教材中习题2的解答2.3 自测题2.4 自测题答案第3章关系数据库语言SQL3.1基本内容分析3.2 教材中习题3的解答3.3 自测题3.4 自测题答案第4章关系数据库的规范化设计4.1基本内容分析4.2 教材中习题4的解答4.3 自测题4.4 自测题答案第5章数据库设计与ER模型5.1基本内容分析5.2 教材中习题5的解答5.3 自测题5.4 自测题答案第6章数据库的存储结构6.1基本内容分析6.2 教材中习题6的解答第7章系统实现技术7.1基本内容分析7.2 教材中习题7的解答7.3 自测题7.4 自测题答案第8章对象数据库系统8.1基本内容分析8.2 教材中习题8的解答8.3 自测题8.4 自测题答案第9章分布式数据库系统9.1基本内容分析9.2 教材中习题9的解答9.3 自测题9.4 自测题答案第10章中间件技术10.1基本内容分析10.2 教材中习题10的解答10.3 自测题及答案第11章数据库与WWW11.1基本内容分析11.2 教材中习题11的解答第12章 XML技术12.1基本内容分析12.2 教材中习题12的解答学习推荐书目1.国内出版的数据库教材(1)施伯乐,丁宝康,汪卫. 数据库系统教程(第2版). 北京:高等教育出版社,2003(2)丁宝康,董健全. 数据库实用教程(第2版). 北京:清华大学出版社,2003(3)施伯乐,丁宝康. 数据库技术. 北京:科学出版社,2002(4)王能斌. 数据库系统教程(上、下册). 北京:电子工业出版社,2002(5)闪四清. 数据库系统原理与应用教程. 北京:清华大学出版社,2001(6)萨师煊,王珊. 数据库系统概论(第3版). 北京:高等教育出版社,2000(7)庄成三,洪玫,杨秋辉. 数据库系统原理及其应用. 北京:电子工业出版社,20002.出版的国外数据库教材(中文版或影印版)(1)Silberschatz A,Korth H F,Sudarshan S. 数据库系统概念(第4版). 杨冬青,唐世渭等译. 北京:机械工业出版社,2003(2)Elmasri R A,Navathe S B. 数据库系统基础(第3版). 邵佩英,张坤龙等译. 北京:人民邮电出版社,2002(3)Lewis P M,Bernstein A,Kifer M. Databases and Transaction Processing:An Application-Oriented Approach, Addison-Wesley, 2002(影印版, 北京:高等教育出版社;中文版,施伯乐等译,即将由电子工业出版社出版)(4)Hoffer J A,Prescott M B,McFadden F R. Modern Database Management. 6th ed. Prentice Hall, 2002(中文版,施伯乐等译,即将由电子工业出版社出版)3.上机实习教材(1)廖疆星,张艳钗,肖金星. PowerBuilder 8.0 & SQL Server 2000数据库管理系统管理与实现. 北京:冶金工业出版社,2002(2)伍俊良. PowerBuilder课程设计与系统开发案例. 北京:清华大学出版社,20034.学习指导书(1)丁宝康,董健全,汪卫,曾宇昆. 数据库系统教程习题解答及上机指导. 北京:高等教育出版社,2003(2)丁宝康,张守志,严勇. 数据库技术学习指导书. 北京:科学出版社,2003(3)丁宝康,董健全,曾宇昆. 数据库实用教程习题解答. 北京:清华大学出版社,2003 (4)丁宝康. 数据库原理题典. 长春:吉林大学出版社,2002(5)丁宝康,陈坚,许建军,楼晓鸿. 数据库原理辅导与练习. 北京:经济科学出版社,2001第1部分课程的教与学1.课程性质与设置目的现在,数据库已是信息化社会中信息资源与开发利用的基础,因而数据库是计算机教育的一门重要课程,是高等院校计算机和信息类专业的一门专业基础课。
java程序设计第二版课后答案Java程序设计第二版课后答案涵盖了多个章节,每个章节都包含了不同的编程概念和练习题。
以下是一些常见章节的课后答案概要,以供参考:第1章:Java简介- 1.1 Java的起源和特点- 1.2 Java平台的组成- 1.3 Java开发环境的搭建第2章:基本语法- 2.1 数据类型- 2.2 变量声明- 2.3 运算符- 2.4 控制语句(if, switch, loop)第3章:控制流程- 3.1 条件语句(if-else, switch-case)- 3.2 循环语句(for, while, do-while)- 3.3 跳转语句(break, continue, return)第4章:数据结构- 4.1 数组的定义和使用- 4.2 字符串的处理- 4.3 集合框架简介第5章:面向对象编程- 5.1 类和对象- 5.2 构造方法- 5.3 继承- 5.4 封装和多态第6章:异常处理- 6.1 异常的概念- 6.2 异常的分类- 6.3 异常的处理方式(try-catch-finally)第7章:输入输出- 7.1 标准输入输出- 7.2 文件输入输出- 7.3 序列化第8章:Java集合框架- 8.1 集合的基本概念- 8.2 List接口及其实现- 8.3 Set接口及其实现- 8.4 Map接口及其实现第9章:泛型- 9.1 泛型的概念- 9.2 泛型的使用- 9.3 泛型的限制第10章:多线程- 10.1 线程的概念- 10.2 创建和启动线程- 10.3 线程的同步第11章:网络编程- 11.1 网络编程基础- 11.2 Socket编程- 11.3 URL和URLConnection第12章:图形用户界面- 12.1 AWT和Swing- 12.2 事件处理- 12.3 布局管理器第13章:Java数据库连接- 13.1 JDBC基础- 13.2 数据库连接和操作- 13.3 SQL语句的使用第14章:Java Web应用- 14.1 Servlet基础- 14.2 JSP技术- 14.3 MVC架构模式每个章节的课后答案通常包括理论问题和编程练习题的解答。
第10章JDBC1. 由于Java的厂商和数据库的厂商,开发Java与开发数据库的就技术有可能不同,因此,Java要想连接不同的数据库,就必须为不同的数据编写驱动。
因此我们连接不同的数据库,也必须使用不同的驱动程序。
2. Java连接数据库的步骤:1. 加载驱动(就是把数据库驱动加载到内存中,可以让Java操作此数据库)。
Class.forName(驱动名);2. 获取连接(在加载驱动的基础上,连接数据库,这样JVM端就与数据库端保持连接了,也就可以操作数据库。
)DriverManager.getConnection(String url);注意:其中的参数url代表连接什么数据库(数据库名),用户名,密码,那台机器上的数据库,包括数据库的端口。
例:连接MySQL用Class.forName("com.mysql.jdbc.Driver");String url="jdbc:mysql://localhost/test?user=root&password=123456&useUnicode=tr ue&characterEncoding=utf-8";//连接字符串含义:jdbc:mysql://localhost/test表示连接的是哪台电脑上的什么数据库,库名叫什么。
//user=root&password=123456表示此数据库的用户名密码// useUnicode=true&characterEncoding=utf-8"数据库的字符编码方式例:连接OracleClass.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url="jdbc:oracle:thin:@localhost:1521:orcl";//orcl为数据库的SIDString user="test";String password="test";Connection conn= DriverManager.getConnection(url,user,password); Connection conn= DriverManager.getConnection(url);//连接Oracle的urljdbc:oracle:thin:@localhost:1521:LIUFY注意:jdbc:oracle:thin:表示连接Oracle数据库Localhost:1521:表示哪台机器,数据库端口LIUFY表示此数据库名(服务管理器中:OracleServiceXXXX,此中的XXXX就是数据库名)3. 操作数据库(Statement这个接口或其子接口)注意:Statement,PreparedStatement,CallableStatement----都是接口Statement stmt = conn.createStatement();String sql = "select * from employees where ename='" + username+ "' and epassword='" + password + "'";stmt.executeQuery(sql);4. 如果执行查询语句,必须返回结果集ResultSetResultSet rs = stmt.executeQuery(sql);利用rs.next()可以获取数据库中是否有此条记录。
5. 关闭数据库try {if(rs != null){rs.close();}if(stmt != null){stmt.close();}if(conn != null){conn.close();}} catch (SQLException e) {e.printStackTrace();}3. 连接数据库的小例子public class DBDemo {public Connection getConnection() {Connection conn = null;try {// Class.forName("org.gjt.mm.mysql.Driver");Class.forName("com.mysql.jdbc.Driver");String url ="jdbc:mysql://localhost/employee?user=root&password=123456&useUnicode =true&characterEncoding=utf-8";// test为数据库名conn = DriverManager.getConnection(url);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}public void free(Connection conn, Statement stmt, ResultSet rs) { try {if (rs != null) {rs.close();}if (stmt != null) {stmt.close();}if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}public boolean selectOneDataByENameAndEPassword(String username, String password) {boolean key = false;Connection conn = null;Statement stmt = null;ResultSet rs = null;try {conn = this.getConnection();stmt = conn.createStatement();String sql = "select * from employees where ename='"+ username + "' and epassword='" + password + "'";rs = stmt.executeQuery(sql);if (rs.next()) {key = true;}} catch (Exception e) {e.printStackTrace();} finally {free(conn, stmt, rs);}return key;}}4. Class(ng包)Class类的实例表示正在运行的Java 应用程序中的类和接口。
public static Class<?> forName(String className) throws ClassNotFoundException 作用:把指定路径下的类或接口className加载到JVM中。
5. DriverManager(java.sql包)public class DriverManager extends Object作用:管理一组 JDBC 驱动程序的基本服务。
1.public static Connection getConnection(String url) throws SQLException作用:试图建立到给定数据库 URL 的连接。
即获取数据库连接对象,注意必须加载驱动后才能调用(注意:从JDK6.0以后,JDBC发展到4.0,加载驱动的代码可以不写,但是必须配置)。
2. public static Connection getConnection(String url,Properties info) throwsSQLException作用:试图建立到给定数据库 URL 的连接。
在Properties中配置用户名密码。
通常至少应该包括 "user" 和 "password" 属性。
3. public static Connection getConnection(String url, String user,String password) throws SQLException作用:试图建立到给定数据库 URL 的连接。
6. Connection接口public interface Connection extends Wrapper作用:与特定数据库的连接(会话)。
在连接上下文中执行SQL 语句并返回结果。
1. Statement createStatement() throws SQLException作用:创建一个Statement对象用于操作数据库(包括添删改查)。
2. PreparedStatement prepareStatement(String sql) throws SQLException作用:创建一个PreparedStatement对象用于操作数据库(包括添删改查)。
3. CallableStatement prepareCall(String sql) throws SQLException作用:创建一个CallableStatement对象用于操作存储过程。
4. void setAutoCommit(boolean autoCommit) throws SQLException作用:设置数据库的提交方式:包括自动提交,手动提交(true表示自动提交,false表示手动提交)5. void commit() throws SQLException作用:如果setAutoCommit(false);必须用commit();手动进行提交。
6. void rollback()throws SQLException作用:如果setAutoCommit(false);如果发现错误,可以利用rollback()方法进行回滚。
7. void close() throws SQLException作用:立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。