Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章

上传人:E**** 文档编号:89350367 上传时间:2019-05-23 格式:PPT 页数:46 大小:678KB
返回 下载 相关 举报
Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章_第1页
第1页 / 共46页
Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章_第2页
第2页 / 共46页
Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章_第3页
第3页 / 共46页
Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章_第4页
第4页 / 共46页
Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章》由会员分享,可在线阅读,更多相关《Web数据库编程——Java 教学课件 ppt 作者 舒红平 第1-5章 第4章(46页珍藏版)》请在金锄头文库上搜索。

1、第4章 JDBC 连 接,4.1 JDBC概述 4.2 JDBC常用接口方法 4.3 JSP通过JDBC连接各种数据库 思考题,4.1 JDBC 概 述,4.1.1 JDBC的诞生 自从Java语言于1995年5月正式公布以来,很快便风靡全球,出现了大量用Java语言编写的程序,其中也包括数据库应用程序。当时,由于没有一个Java语言的数据库连接及操作API(Application Programming Interface,应用程序接口),编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。,随着越来越多的编程

2、人员对Java语言的日益喜爱,越来越多的公司在Java程序开发上投入的精力日益增加,对Java语言接口访问数据库的API的要求也越来越强烈。也由于ODBC有其不足之处,比如它并不容易使用,没有面向对象的特性等,因此,Sun公司决定开发以Java语言为接口的数据库应用程序开发接口。 Java编程语言是编写数据库应用程序的优秀语言,是因为这种语言具有健壮、安全、易用、易理解以及可自动从网络上下载等特点。但是,对于Java数据应用程序而言,需要通过某种方式来与各种不同的数据源进行通信,而JDBC API 则提供了实现这一功能的机制。,在JDK 1.x版本中,JDBC只是一个可选部件,到了JDK 1.

3、1公布时,SQL类包(也就是JDBC API)就成为了Java语言的标准部件。 JDBC API是一类Java API,用于访问几乎任何类型的表格式数据。从商业利润的角度考虑,JDBC是一个商标名而不是首字母缩略词。尽管如此,通常认为JDBC的全称是Java Database Connectivity。最初,JDBC是数据源访问API的惟一商标名,而最近JavaTM Database Connectivity 已补充为第二个商标名。JDBC API 由一组用Java编程语言编写的类和接口组成,这些类和接口为工具/数据库开发人员提供了标准API,同时使得完全使用Java语言来编写具有业界标准的数

4、据库应用程序成为可能。,JDBC API更易于将SQL语句发送到关系数据库系统,同时支持所有SQL变种。 JDBC API在访问数据源方面胜于SQL,从而能够与其他类型的数据源进行交互。 JDBC API的价值在于:该程序可以访问几乎任何数据源,而且可以运行于配有Java虚拟机的任何平台上。换句话说,通过使用JDBC API,没有必要再分别编写访问Access、MySQL、SQL Server、Sybase、Informix、DB2、Oracle等数据库的程序,而只用编写一个程序即可将SQL或其他语句发送给正确的数据源。对于使用Java编程语言编写的应用程序而言,程序员不必再针对特定的平台来编

5、写应用程序。,4.1.2 JDBC结构模型及ODBC-JDBC桥 1两层模型与三层模型 JDBC API既支持两层数据库访问模型,又支持三层数据库访问模型。图4.1说明了两层数据访问的体系结构。 在两层模型中,Java应用程序或Java Applet直接与数据源通信。两层模型需要JDBC驱动程序,这样的JDBC驱动程序能够与需要访问的特定数据源进行通信。用户的命令被传送给数据库或其他数据源,然后,这些命令语句的执行结果被发送回用户。,图 4.1 JDBC两层模型,在三层模型中,命令被发送到服务的中间层,中间层再将命令发送给数据源。数据源处理这些命令并将结果发送回中间层,接着将结果发送给用户。管

6、理信息系统(Management Information System,MIS)管理者发现三层模型极具诱惑力,这是因为中间层使得维护控制(对公司数据的访问)和(对公司数据所进行的)各类更新成为可能,另一个优点是它简化了应用程序的开发。 图4.2说明了三层数据访问的体系结构。,图 4.2 JDBC三层模型,2JDBC驱动程序类型 到目前为止,JDBC驱动程序大体上分成四类: (1) JDBC-ODBC桥驱动程序加ODBC驱动程序:Sun Microsystems桥产品通过ODBC程序提供JDBC访问。注意,ODBC二进制代码(在许多情况下都是客户代码)必须在使用这个驱动程序的所有客户机上加载。因

7、此,这种类型的驱动程序最适合于两种场合:其一是适合于客户安装比较方便的公司网络,其二是三层体系结构中Java编写的应用服务器代码。 (2) 本地API部分Java驱动程序:这种类型的驱动程序将JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的客户API调用。,(3) JDBC-Net纯Java驱动程序:这类驱动程序将JDBC调用转换成独立于DBMS的网络协议,接着由网络服务器将其转换为DBMS协议。这种网络服务器的中间件有能力将其纯Java客户同许多不同的数据库相连接,所使用的具体协议取决于厂家。通常,这是最灵活的JDBC 转换方案。这种驱动程序的所有厂商都

8、会提供适合于Intranet使用的产品。为了使这些产品也支持Internet访问,这些产品必须应付Web强加的安全、穿过防火墙进行访问等额外要求。,(4) 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS使用的网络协议。这类驱动程序允许从客户机直接对DBMS服务器进行调用,是Intranet访问的优秀解决方案。这类驱动程序适合的几种数据库系统包括Oracle、Sybase、DB2、Borland InterBase和Microsoft SQL Server。 图4.3所示为JDBC驱动程序的实现过程。,图4.3 JDBC 驱动程序实现,第3类和第4类驱动程序是使用

9、JDBC API访问数据库的首选方式。第1类和第2类驱动程序是在没有直接的纯Java驱动程序时使用的临时解决方案。第1类和第2类驱动程序可能存在变种,这种变种需要中间件,但这些解决方案通常不够理想。第3类和第4类驱动程序具有Java技术的所有优点,包括自动安装。 表4-1展示了四种驱动程序的类别及其属性。该表中给出的连接类型定义如下: 直接连接:JDBC客户同DBMS服务器直接建立的连接,此DBMS服务器可能是远程服务器。 间接连接:JDBC客户同中间件进程建立的连接,此中间件进程充当DBMS服务器的桥。,表4-1 驱动程序类别,ODBC结构包括四个主要部分:应用程序接口、驱动器管理器、数据库

10、驱动器和数据源。 应用程序接口:屏蔽不同的ODBC数据库驱动器之间函数调用的差别,为用户提供统一的SQL编程接口。 驱动器管理器:为应用程序装载数据库驱动器。 数据库驱动器:实现ODBC的函数调用,提供对特定数据源的SQL请求。如果需要,数据库驱动器将修改应用程序的请求,使得请求符合相关的DBMS所支持的文法。 数据源:由用户想要存取的数据以及与它相关的操作系统、DBMS和用于访问DBMS的网络平台组成。,虽然ODBC驱动器管理器的主要目的是加载数据库驱动器,以便ODBC函数调用,但是数据库驱动器本身也执行ODBC函数调用,并与数据库相互配合。因此,当应用系统发出调用与数据源进行连接时,数据库

11、驱动器能管理通信协议。当建立起与数据源的连接时,数据库驱动器便能处理应用系统向DBMS发出的请求,对分析或发自数据源的设计进行必要的翻译,并将结果返回给应用系统。,4.1.3 JDBC与ODBC的关系 到目前为止,微软的ODBC可能是用得最广泛的访问关系数据库的API,它提供了连接几乎任何一种平台、任何一种数据库的能力。可以在Java中直接使用ODBC,最好在JDBC的协助下用JDBC-ODBC桥接器实现。之所以要使用JDBC,有以下几个方面的原因: (1) ODBC并不适合在Java中直接使用。ODBC是一个C语言实现的API,从Java程序调用本地的C程序会带来一系列类似安全性、完整性、健

12、壮性的缺点。,(2) 完全精确地实现从C代码的ODBC到Java API写的ODBC的翻译也并不令人满意。比如,Java没有指针,而ODBC中大量地使用了指针,包括极易出错的空指针“void*”。因此,对于Java开发来说,把JDBC设想成将ODBC转换成面向对象的API是很自然的。 (3) ODBC并不容易学习,它将简单特性和复杂特性混杂在一起,甚至对非常简单的查询都有复杂的选项。而JDBC刚好相反,它保持了简单事物的简单性,但又允许复杂的特性。,(4) JDBC这样的Java API对于纯Java方案来说是必需的。当使用ODBC时,人们必须在每一台客户机上安装ODBC驱动器和驱动器管理器。

13、如果JDBC驱动器完全是用Java语言实现的话,那么JDBC的代码就可以自动下载和安装,并保证其安全性,而且,这将适应任何Java平台,从网络计算机NC到大型主机Mainframe。 总之,JDBC API是能体现SQL最基本抽象概念的、最直接的Java接口。它建构在ODBC的基础上,因此,熟悉ODBC的开发人员将发现学习JDBC非常容易。JDBC保持了ODBC的基本设计特征,最大的不同是,JDBC是基于Java的并强化了Java的风格和优点。,4.2 JDBC常用接口方法,4.2.1 与数据库建立连接的接口 与数据库建立连接的标准方法是调用方法Drivermanager.getConnect

14、ion(String url,String user,String password)。Drivermanager类用于处理驱动程序的调入并且对新的数据库连接提供支持。基于JDBC的连接方式有两种:JDBC-ODBC桥接方式和纯JDBC连接方式。分别介绍如下。,1JDBC-ODBC桥接 String url=“jdbc:odbc:inter“; try /异常处理模块 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); /加载驱动程序 Connection con=DriverManager.getConnection(url,“sa“,“); /建立

15、连接 ,2纯JDBC(Oracle)连接 try Class.forName( “oracle.jdbc.driver.OracleDriver“); /加载驱动程序 String Str_url=“jdbc:oracle:thin:oa:1521:ORCL“; String DBUser=“lyj“;/ (thin或者oci方式) String DBPwd=“lyj7895“; Connection con=DriverManager.getConnection( Str_url,DBUser,DBPwd);/建立连接 ,4.2.2 向数据库发送SQL语句的接口 首先使用Statement声

16、明一个SQL语句对象,然后通过刚才创建的连接数据库的连接对象con 调用createStatement()方法创建这个SQL语句对象。所用语句如下: try Statement sql=con.createStatement(); catch(SQLException e),4.2.3 处理数据库返回结果的接口 为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Statement的方法,如: ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM Table“); 对结果集ResultSet进行的检索包括行检索和列检索:行检索通过next()方法,列检索通过getx()方法。,1) 行检索next() 变量rs(即ResultSet的一个实例)包含上面的结果集事例中显示的a、b、c的值。为得到a、b、c 对应的具体的值,我们要进入每一行检索结果。方法next将游标移动到下一行,使这一行成为我们可以进行操作的当前行。因为游标最初刚好定位在Resu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号