0 前 言
WWW(Word Wide Web)环球网已经带来了计算机信息领域的变革,为人们开辟了一条方便、快捷获取大量信息的途径。在众多的新技术中,Web上发布数据库信息的技术显得尤为重要。在Java语言诞生之前,这一技术是通过超文本语言HTML (HyperText Markup Language)、Web开发语言(the Web authoring language)、公共网关接口CGI(Common Gateway Interface)和数据库设计这4部分组成来完成的。虽然CGI和某些数据库的结构是开放的,用几种完全不同的结构可能完成同样的任务,而且Internet也有大量的工具和资源可供选择,但这样也会产生使用上的混乱。随着Java语言的出现,它给Web的开发提供了一个全新的概念,即不用完全依靠服务器和CGI程序来处理相应的任务,而是利用Applet(Java小应用程序)在浏览器上运行分担相应的任务。此外,美国Sun公司在1996年提出的JDBC模型,支持Java程序和数据库之间的无缝连接,从而能充分利用C-S技术Server端资源[1]。1 VisualAge for Java软件与JDBC接口简介
VisualAge for Java是一个支持Java程序开发、完整的集成化可视环境,根据可视化编程特征,可以快速地开发Java Applet(Java小应用程序)和应用程序,并且在可视化合成编辑器中能进行可视化编程设计接口,指定界面成员的行为以及定义界面和程序其余部分的关系。此外,VisualAge for Java能生成在可视化合成编辑器中规定的Java代码,这样便提供了更为可靠的数据库访问。 JDBC是 Java语言的SQLAPI,也是Java语言的接口。它支持编程者使用SQL命令和数据进行访问,是一个低级的接口,但是它具有接口的共同特性。JDBC包含两个不同的部分,即JDBC API和JDBC驱动器接口。JDBC可以在Applet中调用,这时,整个应用程序通过网络被发送到客户机上,Applet和Java驱动器通过不同的通道和不同的服务器进行访问,如图1所示。
图1 数据连接方式框图
但是,这样做法在实际中有一定的困难,其中安全性是一个主要的问题,这是因为Applet在客户机上的权限受到限制,而一个应用程序要想很好的运行,就需要具有很高的权限。目前,一些流行的浏览器对应用程序的权限支持各不相同。笔者在实际中用Netscape Communicator 4.04运行达到了良好的效果,使用Hot Java 1.1,把它的安全属性设置至最底也可实现。2 设计思想
在实际系统开发中,采用Web Server/Web Browser方案,来实现数据访问。其系统结构如图2所示。
图2 系统结构图
在Web Server端,以Windows NT Server 4.0为操作系统,并在它的基础上安装Web Server(MS IIS2.0)及DataBase Server(IBM UDB DB2 V5.0)服务器。其中,Web Server与DataBase Server之间通过JDBC方式进行连接。这3个逻辑服务器是在同一个物理机上实现的。
在另一台计算机上安装Windows 95或NT Workstation,以及一个支持Java的标准浏览器,如Netscape Communicator或Hot Java1.1。3 实际操作
3.1 用DB2开发和运行JDBC① 在DataBase Server上先安装DB2(必须是带补丁的2.12版或DB2 Universal Database),建立实际需要的数据源,为VisualAge for Java生成的Applet程序的调用做准备。
② 扩展db2java.zip文件到其子目录中,这样就创建了目录COM/ibm/db2/jdbc…。 ③ 在VisualAge for Java的工作平台上,创建一个工程,如IBM DB2 JDBC Driver[2]。这样,应用程序使用Java类程序来装入驱动器,返回的分类对象和给定字符串的类是相关的。DB2 JDBC驱动器的全名是,COM.ibm.db2.app.DB2Driver (第二类驱动器);COM.ibm.db2.net.DB2Driver (第三类驱动器)。 ④ 用DB2驱动器与数据库相连。在驱动器装入之后,就可以利用驱动器管理器提供的程序与数据连接。函数getConnection(String url,String uesr,String password)可实现这种功能。 如果连接成功,则会显示与数据库连接的信息,否则会看到出错信息,即java.sql.SQLException:[IBM][CLI Driver]SQL 1032N;no start database manager command was issued; java.lang.ClassNotFoundException:COM.ibm.db2.jdbc.app.DB2DriverXYZ。
数据库连接程序代码如下:
Import java.sql.*; public class JdbcConnect {public static void main(String[]args) {try {Class. forName(“COM.ibm.db2.app.DB2Driver”).NewInstance();String url=“jdbc:db2:sample”;Connection con=driverManager.getConnection(“url”,“userid”,“password”);System.out.print(“Connected to databasen”);con.close();} catch(Exception e) {system.out.print(e);}}} 在上面的程序中使用的是DB2的第二类驱动器(COM.ibm.db2.app.DB2Driver),它可以与本地数据库相连。若用第三类驱动器(COM.ibm.db2.net.DB2Driver)与一个远程数据库相连,则在getConnection参数中的JDBC URL改为jdbc:db2://IPhostname:port/databaseName。3.2 用VisualAge for Java生成应用程序 ① 使用VisualAge for Java中的数据企业访问建立器或DAX创建访问数据库表格的数据访问类。如在Map Scheam中建立数据库映象,并选择Save and generator菜单,可生成一些访问数据库表格的beans。 ② 在可视化合成编辑器中创建应用程序界面。使用数据访问beans,并规定它们的属性和建立相应的连接,生成Applet程序,并且把它们放在工程文件的缺省包内。 ③ 把与此Applet相关的数据库访问的包,如Com.ibm.db2.jdbc.net,Com.ibm.db2.ivj.eab.data,Com.ibm.ivj.javabeans 3个包移入到工程文件中去。 ④ 用Export生成JAR文件,放在指定的工作目录中,然后用JDK1.1解包,以实现在浏览器下对HTML文件的调用执行[3]。3.3 运行Applet程序 为了运行一个Applet程序,需要编写的一个HTML文件如下: 〈HTML〉〈title〉JDBC Tester〈/title〉 〈center〉〈h1〉JDBC APPLET TESTER 〈/h1〉〈/center〉 The record from the DataBase table: 〈p〉 〈applet code=“OrgApplet.class:width”width=500 height=120〉 〈/HTML〉在浏览器中打开HTML文件,从而实现交互式Web页面。由于Browser与Server之间采用HTTP协议进行通信,HTTP操纵HTML和WWW文件,所以在HTTP中,使用URL来标识各种不同类型的数据对象,即对不同的数据库进行访问。4 结 论
① 通过以上方法,产生的交互式Web页面运行良好,这说明以IBM VisualAge for Java作为Web开发语言,通过JDBC与DataBase Server连接,可以有效地开发Web数据库管理系统。
② 这种以透明方式获取应用软件的方法真正实现了Client端的应用平台无关性。标准Web Browser内置的对Java平台的支持,决定了Web Browser已成为Client端的网络应用平台。它具有逐渐取代各种操作系统而成为通用桌面计算机应用平台的趋势。