实现任意 dbf数据库查询浏览的 java applet

上传人:子 文档编号:43340376 上传时间:2018-06-05 格式:DOC 页数:7 大小:16.52KB
返回 下载 相关 举报
实现任意 dbf数据库查询浏览的 java applet_第1页
第1页 / 共7页
实现任意 dbf数据库查询浏览的 java applet_第2页
第2页 / 共7页
实现任意 dbf数据库查询浏览的 java applet_第3页
第3页 / 共7页
实现任意 dbf数据库查询浏览的 java applet_第4页
第4页 / 共7页
实现任意 dbf数据库查询浏览的 java applet_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实现任意 dbf数据库查询浏览的 java applet》由会员分享,可在线阅读,更多相关《实现任意 dbf数据库查询浏览的 java applet(7页珍藏版)》请在金锄头文库上搜索。

1、实现任意实现任意 DBFDBF 数据库查询浏览的数据库查询浏览的 JavaJava AppletApplet实现任意 DBF 数据库查询浏览的 Java Applet肖宗水 柴乔林 单于峰(山东工业大学网络中心 济南 2 50 0 6 1 )摘 要 有许多 MIS 系统是基于 x BASE 数据库开发的 ,大量信息资源以 DBF 文件的形式存在。因此解决好 x BASE 数据库与 Web 服务器的数据集成 ,是企业传统 MIS向 Intranet 方式过度的关键之一。本文提出了一种用 Java Applet 实现不通过 Web 服务器而使客户端直接浏览服务器上 DBF 数据库信息的方法、设计思

2、想及类的定义与实现。关键词 MIS 系统 企业内部网 DBF 数据库 Java Applet Web 浏览器分类号 TP3 93在以 Intranet 方式开发企业 MIS 系统时 ,如何有效地利用原有传统 MIS 系统中长期积累的信息资源 ,特别是在开发企业综合信息查询系统时 ,如何以统一的 Web 浏览器界面查询MIS 系统中的信息。需要有一种简单、方便、有效的方法来制作 Web 页面 ,使得数据库中的信息能够动态地更新到 Web 页面中。目前 ,实现 Web 服务器与数据库系统之间的数据通讯 ,要根据所用的软件系统的不同而方法各异。如 :Windows NT 下的 IIS与数据库系统的通

3、讯 ,是通过基于 ODBC 的 IDC 接口 ; JDBC 是使用 Java 语言开发数据库应用的接口 ,但需要特定平台的 JDBC 驱动程序 ; CGI 公共网关接口是实现 Web 服务器与数据库系统通讯较为通用的一种方法 ,但也存在着 CGI1程序的可移植性差 ,编程复杂等缺点。目前 ,有许多 MIS 系统是基于 x BASE 数据库开发的 ,大量信息资源以 DBF 文件的形式存在。在开发企业的 Intranet 时 ,利用好这些信息资源 ,保持原来效果好的 MIS 系统继续使用 ,可以充分保护用户的先前投资。因此解决好 x BASE 数据库与 Web 服务器的数据集成 ,是企业传统 MI

4、S 向 Intranet 方式过度的关键之一。本文提出了一种用 Java Applet 实现不通过Web 服务器而使客户端直接浏览服务器上 DBF 数据库信息的方法。1 设计思想Java Applet 是运行于浏览器内的 Java 程序 ,并且独立于平台 ,其虚拟机代码可以运行在PC、Mac 或 UNIX 等不同系统上。在用浏览器 (Internet Explorer或 Netscape 等 )查询信息时 ,Java Applet 的虚拟机代码首先从 Web 服务器传至浏览器 ,然后由浏览器解释执行。图 1 给出了在浏览器中通过 Java Applet 直接查询服务器上的 DBF 数据库的方法

5、。图 1 在浏览器中查询 DBF 数据库内容(1 )启动浏览器后 ,首先从 Web 服务器读取由 URL 指定的 HTML 文件 , HTML 文件中用下述方式指定 Java Applet:APPL ET CODE=“dbf. class“W IDTH=“x“HEIGHT=“y“其中 :dbf. class 是实现 DBF 数据库查询的 Java Applet;x, y 是浏览器中 Applet 区域的大小 ,可以在 Applet 中动态改变 ;FILENAME. DBF 是要查询的数据库文件 ;F1 , F2 , F3 , . . .是要显示的一系列数据库字段 ;H1 , H2 , H3 ,

6、 . . .是对应于 F1 , F2 , F3 , . . .字段的栏名 ,用于格式化检索结果 ;(2 )从 Web 服务器传送 dbf. class 至浏览器 ;(3 )启动 dbf. class Applet 执行 ;(4)dbf. class 从服务器读取由 DBFFILE 参数指定的 DBF 数据库文件 ;(5)在 Applet 中输入查询条件 ,检索出符合条件的记录 ,并根据 DISPFIELDS 参数指定的字段格式化检索结果 ,并显示在浏览器中。2 dbf. class 类的定义及实现dbf. class 是一个 Java Applet,不是一个独立运行的 Java 程序。其处理流

7、程如下 :(1 )从 HTML 参数中获取 DBF 数据库文件名、字段列表和栏名 ;String DBF F ile=get Parameter(“DBF F IL E“);String F ields=get Parameter(“DISPFIEL DS“);String Headers =get Parameter(“HEADERS“);int F ield Num ber; / *检索结果中要显示的字段个数 */Sting F ield Nam e =new StringF ield Number; / *用于存放从 F ields 分解出的一系列数据库字段名 */int Cols; /

8、 *分解出的字段个数 */Sting Header Name =new StringF ield Number; / *用于存放从 Headers 分解出的一系列栏名 */(2 )打开 URL 上的 DBF 数据库 ,分析数据库结构 ;URL u rl=nu ll; / *数据库在 web 服务器上的位置 */Input Stream is;Data Inpu t Stream dis;Buffered Inp ut Stream bis;url =new URL (get Document Base(),DBF F ile); / *获得数据库在 web 服务器上的位置 */is =u rl

9、. open Stream(); / *打开数据库 */bis =new Buffered Inpu t Stream(is);dis=new Data Input Stream(bis);/ *分析数据库结构 2 ,获得记录数、记录长度、数据库记录的起始位置 */int Records,Record L en ,Offset;/ *读取数据库字段表 */class Field L istpublic String Nam e; / *字段名 */public int L en; / *字段长度 */public char Type; / *数据类型 */public int Offset;

10、/ *字段在记录中的偏移量 */F ield L ist L ist =new F ield L istRecords;(3 )构造查询界面 ,并等待输入查询条件 ;set L ayout(new F low L ayout(Flow L ayout. CENTER); / *选择流线布局 */add (new L ab el(“输入查询条件字段名 :“,L abel. RIGHT);Choice F ch =n ew Choice();F ch. add Item(L isti. Nam e); / *建立字段选择列表 */add (new L ab el(“运算符 :“,L abel. R

11、IGHT);Choice Ach =new Choice();Ach . add Item (“=“); / *建立比较运算符列表 :=,=*/add (new L ab el(“字段值 :“,L abel. RIGHT);add (new Text F ield (40 );/ *加入查询按钮 */add(new Bu tton(“查询 “); (4)统计符合条件的数据库记录个数 ,并设置屏幕布局为栅格方式 ;int Recs;resize(显示记录长度 *F W ,(Recs +1 )*FH); / *调整 Applet 区域的大小 ,其中 FW 是字符宽度 ,FH 是字符高度 */set

12、 L ayout(new Grid L ayout(Recs +1 ,Cols); / *将 Applet区域分隔为 (Recs+1 )行 ,Cols 列 */(5)显示由栏名构成的表头 ;for (i=0 ; iCols; i+)add(n ew L ab el(Header Namei);(6)读取数据库记录 ,并根据查询条件过滤 ,逐条显示符合条件的记录 ;int p tr=Offset; / *当前文件读取位置 */byte buf =new byteRecord L en; / *记录缓冲区 */for (i=0 ; i Reocrd s; i+,ptr+=Record L en)d

13、is. read F u lly(buf,ptr,Record L en); / *读取一条数据库记录 */ *分解记录中的各个字段 */ *取查询字段的值与输入的查询条件比较 */if (符合条件 )for (j=0 ; jCols; j+)add(n ew L abel(要显示的字段的值 );(7)关闭 DBF 数据库。dis. close();dbf. class 类的结构如下 :import java. app let. *;import java. awt. *;import java. net. *;import java. io. *;public class d bf exte

14、nds java. applet. Applet/ /变量和数组定义/ /初始化public void init()/ /取 HTM L 的参数/ /打开 URL 上的 DBF 数据库 ,分析数据库结构/ /构造查询界面public void Query()/ /统计符合条件的数据库记录个数 ,并设置屏幕布局为栅格方式/ /读取数据库记录 ,并根据查询条件过滤 ,逐条显示符合条件的记录/处理查询按钮事件public boolean action(Event evt,Object arg)if (evt. target instanceof Button)Query();return true;

15、public void stop()dis. close();3 结束语限于篇幅 ,上述给出的 dbf. class 的实现过程没有处理异常3情况 ,如文件不存在、文件尾等。另外需要说明的是 :Java 出于安全方面的考虑 ,在 Applet 中只能存取 Web 服务器上的数据文件 ,因此用这种方法查询浏览 DBF 数据库 ,要求 DBF 文件必须和 Web 在同一服务器上。由于数据库的检索过程是在客户端完成的 ,这就要求整个 DBF 文件在网上传送 ,即使只需要数据库中的几个记录。因此 , DBF 文件较大时执行效率比较低 ,当然也有 Java Applet 解释执行的原因。可以采用 Java 中的 Socket 类和 Server Socket 类开发一个 Client/ Server 结构的应用 ,由服务器端完成数据库的检索 ,客户端完成检索条件的提交和接收查询结果。

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

当前位置:首页 > 生活休闲 > 科普知识

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