互联数据库华夏大地讲义串讲7-8章.ppt
第七章 基于Web数据库技术概述,学习目的和要求 了解Web数据库相关技术:超文本传输协议公共网关接口服务器APIJava数据库连接Microsoft ActiveX 平台。,第七章 基于Web数据库技术概述,往年频繁考点:URL及其组成HTTP协议的功能CGI程序及其调用方式CGI的特点服务器API的基本概念ISAPI的功能IDC数据库连接的功能和工作流程ActiveX控件的定义、功能和特点JavaScript特点,第一节 WWW技术超文本传输协议(HTTP),WWW(简称Web)是一个基于超媒体的信息网络,它通过超链接的方式浏览在Internet上的信息。Web的主要基础是一个应用层协议HTTP,允许在支持HTTP的客户机与服务器之间执行与平台无关的通信。HTTP客户机通过一个称为Uniform Resource Locators URLs(统一资源定位器)的命名机制访问驻留在HTTP服务器中的数据源。构成Web超链网状结构的数据文件是以Hyper Text Markup Language(HTML超文本标记语言)编码的ASCI文本文档。,第一节 WWW技术超文本传输协议(HTTP),URL的组成:检索协议Internet节点为HTTP客户服务的资源文件名HTTP协议的功能:HTTP作为消息传输复杂数据类型的功能;HTTP便于在HTTP客户机之间及使用不同网关的其它协议之间通信的功能。HTTP事务包括:连接、请求、响应和断开。,第二节 公共网关接口,CGI的概念:CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器。CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。CGI程序任何遵从CGI标准的、由Web服务器执行的、能从Web服务器接收信息或发送信息给Web服务器的程序叫做CGI程序。,第二节 公共网关接口,CGI应用程序可以运行在各种操作系统上,比如DOS、UNIX、Windows、Windows NT等。任何一种程序语言,只要能在服务器主机上利用CGI接口来编写应用程序,都可以作为CGI程序语言。CGI程序的两种调用方式:(1)通过交互式主页里的表单栏(FORM)调用;(2)通过URL直接调用。,第二节 公共网关接口,从网页表单(Form)启动CGI的工作方式 表单一般有两种用途:数据采集和交互通信,它是使Web成为交互式媒体的重要机制。表单由两部分组成:HTML代码和action属性值指向的CGI程序。表单可包括文本编辑、列表选择、各类按钮等控件接受用户输入,允许用户输入查询数据库的条件,这种交互式查询称为表单式查询。表单的method属性的值GET方法:浏览器会将字符串形式的参数加到http header中URL的后部,在?符号之后,传给Web服务器;Web服务器启动CGI程序前将参数写入环境变量,CGI程序从QUERY-STRING环境变量中读取这些查询条件参数,并从PATH-INFO环境变量中读取附加路径信息。,第二节 公共网关接口,POST方法:浏览器发请求时,跟在http header后有一专门的数据段,这个数据段包含在表单中输入的查询参数,它一起被发送给Web服务器;Web服务器启动CGI程序后,CGI程序将从标准的输入STDIN(如Unix系统)或专门的文件(WINDOWS NT)读这些参数,CGI程序使用环境变量中的CONTENT-LENGTH变量来确定参数的长度。GET方法比POST方法快,但由于通过URL能够传递的字符数据是有限的,而且在URL中信息在网上传输时是可见的,故GET方式不太安全。POST是更好的方案。,第二节 公共网关接口,CGI的优点简单性语言无关性Web服务器无关性广泛的可接受性。CGI的局限性:瓶颈问题。客户机和数据库服务器之间的通信必须通过Web服务器,当有大量的用户访问时,Web服务器会“超载”。缺乏效率和事务支持。CGI应用程序不能由多个客户机请求共享,降低了性能,增加了等待时间。CGI应用程序不持久。服务器必须为每次访问CGI程序建立新的进程或线程,每次请求时数据库连接都必须重新打开,开销很大。CGI程序安全性问题。,第三节 服务器API,一个API是驻留在Web服务器上的程序代码,它扩展了服务器的性能,其方式类似于CGI。服务器API的种类包括ISAPI、NSAPI和WSAPIISAPI规范调用有两个入口点进入ISAPI DLL第一个命名为GetExtensionVesion(),允许返回所使用的有关DLL的版本信息,使得易于与未来版本的IIS向后兼容。第二个命名为HttpExtensionPro(),是进入到所用DLL为每台客户机请求获得调用的入口点。,第三节 服务器API,ISAPI的过滤器机制ISAPI提供了一个过滤器机制捕获所有的HTTP请求过滤器允许预处理请求并允许事后处理响应,允许特定站点的HTTP请求与响应处理,用户可以使用这个机制实现自定义压缩、加密、身份验证(访问控制)或者登录。用户可以安装多个过滤器,一旦决定过滤器必须监控一个请求,无论该请求是否用于一个文件,一个CGI应用或ISAPI应用的请求,过滤器均接收该数据。依赖于过滤器应用选择的选项,过滤器可作用于多个服务器操作,包括该客户机的原始数据、处理报头、处理通过安全端口的通信,以及在HTTP请求处理过程中的其他阶段。,第三节 服务器API,IDC(Internet Database Connector)是IIS的一个组件,它允许Web浏览器ODBC数据库访问HTTP请求。Web浏览器利用HTTP提交请求给IIS,服务器使用一个以HTML格式化的文档作为响应,通过IDC实现访问SQL数据库。Httpodbc.dll是利用ODBC获得数据库访问的一个ISAPI DLL。,第三节 服务器API,Httpodbc.dll使用两类文件控制如何访问数据库以及如何构造输出的Web页面,这两类文件是Internet Database Connector(.idc)文件和 HTML扩展(/htx)文件IDC文件包含了连接到适当的ODBC数据源以及执行SQL语句所必须的信息,还包含了HTML扩展文件的名字及其位置。HTML扩展文件是用于实际HTML文档的模板,该文档是通过Httpodbc.dll合并数据库信息到其中后返回到 Web浏览器的文档。,第四节 Java数据库连接,JDBC是一个SQL层的API,允许将SQL语句作为参数嵌入到JDBC接口的方法中。从启动任何相关的数据库到启动特殊的数据库,JDBC均给予完全的自由度。无论是何种数据库,均可运行相同的代码。JDBC通过一组Java接口实现其目标,每一个接口均由独立的数据库厂家不同地实现。为特殊的数据库引擎实现JDBC接口类型的一组类称为一个JDBC驱动程序。在开发一个Web数据库应用的过程中,无论如何都不必考虑这些潜在类的实现。JDBC整个的要点是隐藏每一个数据库的细节并使开发人员只关注自己的应用程序。,第四节 Java数据库连接,“Data Access Objects”(DAO)是一个ActiveX组件库,允许从任何有ActiveX功能的编程语言中事例化及控制JET。DAO的局限性:DAO不能用于交叉平台的Java解决方案。作为一个ActiveX组件,只能用于Windows环境中。因此如果用户不使用Windows机器运行Java程序或应用程序,那么将不可使用DAO。JDBC可以运行于任何支持Java的平台。,第五节 Microsoft ActiveX 平台,ActiveX是Microsoft提出的一种标准,ActiveX也是 Microsoft一组软件技术的统称,包括控件、文档、脚本三种最常用的技术,以及Microsoft的许多其他技术。ActiveX控件也称为OLE控件或OCX控件,是能够运行在Web页面上的软件组件。ActiveX控件是跨语言的,能在当前流行的许多编程语言中应用。ActiveX控件优点在于保护开发者以前的投资,几千个已有的控件是这种技术的资本。ActiveX是一种开放的技术,它包容了现有的标准又鼓励第三方的参与。,第五节 Microsoft ActiveX 平台,ActiveX控件技术需要改进之处一些ActiveX控件体积还过于庞大,用户浏览时进行下载速度较慢。ActiveX控件的平台无关性不如Java。,第五节 Microsoft ActiveX 平台,ActiveX控件的功能该控件有一组属性,应用设计人员可以按需要设置这些属性的值,以改变控件的显示特征和特性;该控件同时提供了一组方法,包含ActiveX控件的程序(Container)可以调用这些方法,以完成特定的功能;该控件还有一组事件,当事件触发时,应用将调用为该事件设计的响应函数,它实际是能嵌入ActiveX控件的程序,这是控件和Container的通信方式。多数ActiveX控件都有可见部分,在控件启动后,可见部分会显示在窗口上,可接收用户的输入。,第五节 Microsoft ActiveX 平台,目前,已有1000多个ActiveX控件可以使用,范围从小的定时器控件到字处理器甚至Internet浏览器。ActiveX控件是依赖于平台的,目前还只能在Microsoft的平台、Windows NT、Windows95等环境下使用。在Web中,ActiveX控件和脚本语言可有机地结合在一起使用,可在HTML文档中用Object标签将ActiveX控件嵌入,再在标签中提供ActiveX控件在全系统的唯一标识(这个标识是一个128字节的串)及若干参数。在许多商品化的工具中,都能帮助用户方便地将ActiveX控件加入到网页中,目前比较流行的一些工具有FrontPage、MS InterDev等。,第五节 Microsoft ActiveX 平台,JavaScript特点:1)JavaScript是一种脚本语言,它的标识符形式上与 C、C、Pascal和 Delphi十分类似。它的命令和函数可以同其他的正文及HTML标识一同放置在用户的Web主页中。当用户的浏览器检索主页时,将运行这些程序并执行相应的操作。2)JavaScript具有事件驱动特征,当在Web主页中进行某种操作时,就产生了一个“事件”。3)JavaScript是安全的语言,它被设计成通过浏览器来处理和显示信息,但它不能修改其他文件中的内容。4)JavaScript并不依赖于具体的计算机平台,它只依赖于解释它的浏览器。,第五节 Microsoft ActiveX 平台,5)JavaScript为Web的设计人员提供了极大的灵活性和丰富的控制手段,它是一种优秀的“粘合剂”,能够将一个Web结点中的不同组成部分捆绑在一起。VBScript特点:VBScript来自于Visual Basic,其语法更接近Visual Basic。VBScript的源代码可以加入到HTML文档中,被浏览器直接解释执行。VBScript是过程化语言,以子程序为基本单位。VBScript也没有与用户机器上的文件交互的能力,是安全的语言。,第五节 Microsoft ActiveX 平台,ActiveServerPages(ASP)是Microsoft基于服务器的、建立动态和交互式Web页面的技术,它是建立在ISAPI技术基础上的,并克服了CGI存在的缺点。ASP文件组成部分:(1)文本;(2)HTML标记,可单独使用或嵌入在各个ASP脚本单元中,以“”为定界符;(3)VBScript(或JavaScript)语句,可单独使用或嵌入在各个ASP脚本单元中,以(SCRIPT和/SCRIPT)为定界符,通过对“RUNAT”属性的设置来决定是否在服务器端运行;(4)ASP脚本命令:可单独使用或包含在此和/html内,以%和%为定界符。,第五节 Microsoft ActiveX 平台,ActiveX Data Object(ADO)是ASP内置的服务器对象,是数据库访问组件。将ADO与ASP结合能建立提供数据库信息的网页,能在网页中执行SQL命令,对数据库进行查询、插入、删除和修改等操作。将ADO与VBScript或JavaScript结合能用来控制数据库的访问和查询结果的输出。ADO可以连接到任何支持ODBC的数据库,比如SQL Server、Oracle等,ADO是位于ODBC之上的、高性能的数据操作接口。,第五节 Microsoft ActiveX 平台,ADO包括七个对象三个主对象为连接对象(Connection)、命令对象(Command)和记录集对象(Recordset)四个对象是错误对象(Error)、字段对象(Field)、参数对象(Parameters)和属性对象(Properties),第五节 Microsoft ActiveX 平台,连接对象连接对象管理数据库上的连接。命令对象命令对象定义和执行对数据源进行操作的命令。一旦建立了活动连接,就可以用与连接对象相同的方式使用命令对象。可以通过赋予命令对象有关属性的值,来指定执行命令的一些外部参数。记录集对象记录集对象存放由数据库和命令产生的全部结果集。记录集对象是ADO的核心,它是与数据库交互的主要机制。,第五节 Microsoft ActiveX 平台,一个记录集本质上是一个游标,记录集游标有四种类型,可用open命令的CursorType参数来设置,分别用于并发存取数据库时不同的独立级别:动态游标:记录集可更新,能看到别的用户对这些记录的所有更新,包括增加、删除和修改记录。关键集游标:类似动态游标,记录集可更新,只是不能看到在记录集打开后别的用户增加的记录。静态游标:不能更新记录,在记录集打开后,别的用户对这些记录的所有更新都不能看到,可以前后浏览记录。向前浏览游标:类似静态游标,而且只能向前一个方向扫描浏览记录。,第八章 JDBC基于Java的数据库连接,学习目的和要求 了解JDBC定义及连接数据库的方法了解JDBC的使用环境及技术目标理解JDBC的主要的类及JDBC对象层次结构往年频繁考点:分布式环境JDBC的定义JDBC的基本功能JDBC连接数据库的方法JDBC使用环境关键的JDBC类JDBC对象层次结构组成,第一节 JDBC概述,分布式环境:计算机环境的分布式意味着在分布式环境中的每一个节点都是一个小的计算机单元。JDBC是执行SQL语句的JavaAPI。JDBC即“JavaDatabaseConnectivity”(Java数据库连接),它由一组用Java语言编写的类与接口组成,已成为一种数据库连接的标准。JDBC的基本功能建立与数据库的连接;发送SQL语句;处理结果。,第一节 JDBC概述,JDBC提供了连接数据库的几种方法:与数据源直接通信通过JDBC驱动程序的通信与ODBC数据源通信JDBC的特点:JDBC是低级的API,是高级API的基础。JDBC是一种低级的接口,它直接调用SQL命令,但又可以作为构造高级接口和工具的基础。在执行时,高级API将首先被翻译成如JDBC这样的低级接口。,第一节 JDBC概述,JDBC与ODBC以及其他API的区别:Java不能直接使用ODBC,因为是ODBC使用C语言接口,如果让Java来调用本机C代码,将会在安全、属性、健壮性、应用的可移植性等方面带来困难。不希望把ODBCAPI逐字地翻译成JavaAPI,例如ODBC使用了大量易出错地指针,而Java取消了这种不安全地指针。ODBC难以学习,它把简单功能和高级功能混杂在一起,即便是简单的查询语句也会带来复杂的任选项。而JDBC的设计使得简单的事情用简单的方法做,仅在必要时才让用户使用高级功能。,第一节 JDBC概述,JDBC的JavaAPI提供“纯Java”的解决方法。当使用ODBC时,ODBC驱动器管理程序与驱动器必须手动地装入到每台客户机上。而JDBC驱动器全是用Java编写的,JDBC代码可在所有Java平台上自动安装,并且是可移植的和安全的。,第二节 JDBC的设计目标,JDBC使用环境两层模型:有一个数据库及直接连接到该数据库的程序。该程序直接连接返回到数据库,处理查询并为用户提供结果。三层模型:有一个以Java编写的应用服务器作为访问数据库的媒介。,第三节 主要的JDBC类,JDBC规范包含大约十多个关键的类定义以及核心的java.sql接口和类中多个相关的类。,第三节 主要的JDBC类,JDBCAPI提供的类或接口主要包括:处理驱动程序的装载和建立新的数据库连接。完成对某一指定数据库的连接。管理在一指定数据库连接上的SQL语句的执行。从数据库返回的结果集。,第三节 主要的JDBC类,JDBC对象层次结构组成 JDBC由一个对象层次结构组成,自DriverManager类开始。从DriverManager类可以获得指向特定数据的Connection对象。然后作为执行一个语句的一部分,可以得到一个ResultSet对象,ResultSet对象描述一条特定SQL SELECT返回的结果集。,第三节 主要的JDBC类,客户端的Java应用程序需要完成的工作有:1)与JDBC服务器建立连接;2)装载JDBC/ODBC驱动器;3)与ODBC数据源建立连接;4)发送SQL语句;5)得到查询结果;6)关闭与JDBC服务器的连接。,一个简单的JDBC实例Import java.sql.*;public class MyJDBCSamplepublic static void main(String args)try/装载驱动器Class.forName(“”);catch(ClassNotFoundException e)System.out.println(“Unable to load Driver Class”);try/所有数据库访问位于一个try/catch块中,/连接数据库,指定具体数据库、用户名和密码Connection con=DriverManager.getConnection(“jdbc:odbc:companydb”,”,”);,/创建和执行一个SQL语句Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(“SELECT FIRST_NAME FROM EMPLOYEE”);/显示SQL结果while(rs.next()System.out.println(rs.getString(“FIRST_NAME”);/一定要释放数据库资源rs.close();stmt.close();con.close();,catch(SQLException se)/有SQL错误时通知用户System.out.println(“SQL Exception:”+se.getMessage();se.printStackTrace(System.out);,