好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

jsp&asp13-15JSP中使用数据库.ppt

27页
  • 卖家[上传人]:jiups****uk12
  • 文档编号:55493077
  • 上传时间:2018-09-30
  • 文档格式:PPT
  • 文档大小:140KB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 2018年9月30日,1,第5章 JSP中使用数据库,教学目标 教学重点 教学过程,2018年9月30日,2,教学目标,了解JDBC的相关概念 掌握使用JDBC-ODBC桥访问数据库 掌握使用JDBC驱动程序访问数据库 掌握常用SQL语句的使用,2018年9月30日,3,教学重点,使用JDBC-ODBC桥访问数据库 使用JDBC驱动程序访问数据库 查询记录 更新记录 添加记录 删除记录 分页显示记录 查询Excel电子表格,2018年9月30日,4,教学过程,JDBC概述 使用JDBC-ODBC桥访问数据库 使用JDBC驱动程序访问数据库 查询记录 更新记录 添加记录 删除记录 分页显示记录 查询Excel电子表格 JSP数据库应用实例,2018年9月30日,5,5.1 JDBC概述,什么是JDBC JDBC与OBDC JDBC两层模型和三层模型,2018年9月30日,6,什么是JDBC,JDBC是一种可用于执行SQL语句的Java API(ApplicationProgrammingInterface应用程序设计接口),它由一些Java语言编写的类和界面组成。

      JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序 通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)2018年9月30日,7,JDBC与OBDC,ODBC是由微软开发的、目前用得最广泛的访问关系数据库的API,它是用C语言实现的标准应用程序,用来在相关或不相关的数据库管理系统(DBMS)中存取数据的通过ODBC API,应用程序可以存取保存在多种不同DBMS中的数据,而不论每个DBMS使用了何种数据存储格式和编程接口,它提供了连接几乎任何一种平台、任何一种数据库的能力 JDBC与ODBC都是基于X/Open的SQL调用级接口,JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。

      事实上,JDBC通过JDBC-ODBC桥接器实现ODBC可以实现的所有的对数据库的操作能力2018年9月30日,8,JDBC两层模型和三层模型,JDBC API既支持数据库访问的两层模型,同时也支持三层模型 在两层模型中,Java applet或应用程序将直接与数据库进行对话,这就需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通讯数据库可以位于另一台计算机上,用户通过网络连接到上面,即客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器,网络可以是Intranet,也可以是Internet 在三层模型中,命令先是被发送到服务的“中间层,然后由它将SQL语句发送给数据库数据库对SQL语句进行处理并将结果送回到中间层,中间层再将结果送回给用户三层模型具有很大的优势,因为可用中间层来控制对数据的访问和可作的的更新的种类,并且用户可以利用易于使用的高级API,而中间层将把它转换为相应的低级调用2018年9月30日,9,5.2 使用JDBC-ODBC桥访问数据库,创建ODBC数据源 JDBC—ODBC桥访问Access数据库分析,2018年9月30日,10,创建ODBC数据源,要实现通过ODBC访问数据库,就必须首先为数据库建立一个ODBC数据源,这样数据库才能实现和应用程序的交互。

      单击“开始”|“设置”|“控制面板”菜单命令,打开“控制面板”窗口,然后在窗口中双击“管理工具”图标,打开“管理工具”窗口,再双击“数据源(ODBC)”图标,打开“ODBC数据源管理器”窗口,单击“添加”按扭,打开“创建新数据源”窗口,然后即可创建数据源了将数据源创建好之后就需要编写访问数据库的JSP程序了程序可参看书中相应章节,2018年9月30日,11,2018年9月30日,12,2018年9月30日,13,5.3 查询记录,SQL的查询语句 JSP发送执行查询语句,2018年9月30日,14,SQL的查询语句,在查询数据库中的记录时,都是通过标准的SQL语句来实现的SQL的查询语句即SELECT语句,是SQL语言的核心,其语法格式为: SELECT [ALL | DISTINCT] column1[,column2] FROM table1[,table2] [WHERE “conditions“] [GROUP BY “column-list“] [HAVING “conditions] [ORDER BY “column-list“ [ASC | DESC] ] 其中,column1[,column2]为要查询的列名。

      table1[,table2]用来指定要查询的表的名称[WHERE “conditions”]用来指定用于限制返回的结果的搜索条件[HAVING “conditions]用来指定组或聚合的搜索条件 [ORDER BY ”column-list“ [ASC | DESC] ]用来指定结果集的排序 例如: SELECT id,name FROM stu_info WHERE (age<20) ORDER BY id DESC,2018年9月30日,15,JSP发送执行查询语句,JDBC提供了三种接口来实现SQL语句的发送执行,它们分别是Statement、PreparedStatement和CallableStatementPreparedStatement继承了Statement,而CallableStatement又从PreparedStatement继承而来它们用于执行不同的SQL语句:Statement接口的对象用于执行简单的不带参数的SQL语句;PreparedStatement接口的对象用于执行带有IN类型参数的预编译过的SQL语句;而CallableStament接口的对象用于执行一个数据库的存储过程。

      2018年9月30日,16,5.4 更新记录,SQL的更新语句 JSP发送执行更新语句,2018年9月30日,17,SQL的更新语句,SQL语言中使用UPDATE语句来更新表中的现有数据其语法格式为: UPDATE table_name SET column_name =expression[,column_name1 =expression] WHERE search_condition] 其中,table_name:用来指定需要更新的表的名称如果该表不在当前服务器或数据库中,或不为当前用户所有,这个名称可用链接服务器、数据库和所有者名称来限定 SET column_name =expression[,column_name1 =expression]:指定要更新的列或变量名称的列表,column_name指定含有要更改数据的列的名称 WHERE search_condition:指定条件来限定所更新的行根据所使用的WHERE子句的形式,有两种更新形式:一种是搜索更新指定搜索条件来限定要删除的行;另一种是定位更新使用CURRENT OF子句指定游标,更新操作发生在游标的当前位置2018年9月30日,18,JSP发送执行更新语句,JSP中,Statement类提供的executeUpdate()方法用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义语言)语句,例如CREATE TABLE和DROP TABLE。

      INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列executeUpdate()的返回值是一个整数,指示受影响的行数(即更新计数)对于CREATE TABLE或DROP TABLE等不操作行的语句,executeUpdate()的返回值总为零 executeUpdate()方法和执行SELECT声明的executeQuery()方法相似,但是它不返回一个ResultSet,而是返回受到INSERT、UPDATE、或者DELETE操作影响的行数2018年9月30日,19,5.5 添加记录,SQL的插入语句 发送执行插入语句,2018年9月30日,20,SQL的插入语句,在SQL语言中,使用INSERT语句将新行添加到表或视图中INSERT语句的语法格式为: INSERT INTO table_name column_list VALUES ( { DEFAULT | NULL | expression } [ ,.n] ) table_name:指定将要插入数据的表或table变量的名称 column_list:要在其中插入数据的一列或多列的列表必须用圆括号将 column_list 括起来,并且用逗号进行分隔。

      VALUES ( { DEFAULT | NULL | expression } [ ,.n] ):引入要插入的数据值的列表对于 column_list(如果已指定)中或者表中的每个列,都必须有一个数据值,且必须用圆括号将值列表括起来如 VALUES列表中的值与表中列的顺序不相同,或者未包含表中所有列的值,那么必须使用column_list明确地指定存储每个传入值的列2018年9月30日,21,发送执行插入语句,JSP中,和更新记录一样,可以使用executeUpdate()方法来发送执行插入语句2018年9月30日,22,5.6 删除记录,SQL的删除语句 JSP发送执行删除语句,2018年9月30日,23,SQL的删除语句,在SQL语言中,使用DELETE语句删除数据表中的行DELETE语句的语法格式为: DELETE FROM table_name [WHERE search_condition] table_name:用来指定从中删除记录的表的名称 WHERE:用来指定用于限制删除行数的条件如果没有提供 WHERE子句,则DELETE删除表中的所有行 例如,要从stu_info表中删除学号为“4”的学生的记录,则SQL语句为: DELETE FROM stu_info WHERE id=4,2018年9月30日,24,JSP发送执行删除语句,JSP中,删除语句的发送和执行也是通过executeUpdate()方法来实现的,其实现方法和更新语句、插入语句相同。

      例如实现从stu_info表中删除学号为“4”的学生的记录的JSP代码为: Statement stmt = conn.createStatement(); String sql=“ DELETE FROM stu_info WHERE id=4“ stmt.executeUpdate(sql); stmt.close();,2018年9月30日,25,5.7 分页显示记录,在实际应用中,如果从数据库中查询得到的记录特别多,甚至超过了屏幕的显示能力,这是就需要将结果分页显示实现分页显示数据库中的记录,首先要连接上数据库如何连接数据库前面已经介绍过,这里不再赘述 在Java语言中,每一种原始的数据类型(如int、float、long等)对有一个相应的类,例如int对应Interger类,float对应float类其中Interger类提供了一个parseInt()的方法,可以不用创建一个对象就可以把字符串转换为整型值intPage = java.lang.Integer.parseInt(strPage);”这条语句中,就是使用了Interger类的parseInt()方法将strPage变量转换为整型变量并赋给intPage变量。

      然后对当前页(intPage)进行判断,如果它小于0,则将其设为“1”,即显示第一页的记录,如果不小于0,则执行SQL语句,从数据库中查询记录,并计算出结果集中记录总数、总页数等 该例子的代码可参看书中相应章节。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.