Web程序开发中的JDBC技术改进研究

2010-08-15 00:48常万军马世霞
科学之友 2010年10期
关键词:对象化程序开发易用性

常万军,马世霞

(1.贵州大学,贵州 贵阳 552205;2.河南机电高等专科学校,河南 新乡 453002)

Web程序开发中的JDBC技术改进研究

常万军1,2,马世霞2

(1.贵州大学,贵州 贵阳 552205;2.河南机电高等专科学校,河南 新乡 453002)

文章基于MVC模式,通过建立DBAccess类实现了JDBC对象化改进。利用继承于改进的Hashtable类的Data类和String[][]类的设计,实现了JDBC易用性的改进。在实现对象化和易用性改进方案的基础上开发出的Web系统经测试能够正常运行,很好地说明了改进方案的可行性。

MVC;技术改进;JDBC

1 引言

随着网络技术的不断发展,对Web数据库技术的发展要求越来越高。但是由于在网络环境下,Web数据库的体系结构、访问方式、访问的用户以及客户端简化等都与传统数据库有很大的不同,要使Web数据库的应用得到有效提高,需引入中间件这一技术,使得应用程序利可以用中间件共享各种资源,特别是分布式的网络资源,也使软件开发者不必在应用程序间的通信、互操作以及它们的效率、可靠性、容错性、安全性、完整性等问题上耗费太多精力,提高应用程序开发的效率。JDBC(Java Data Base Connectivity)是基于中间件平台的一种数据库访问技术,他能够很好的与ODBC(Open DataBase Connectivity)结合,具有可移植性、平台无关性。[1~4]但是由于JDBC是基于面向过程的思想提供服务的,不符合面向对象的要求,同时其易用性不能使人满意。本文讨论了基于MVC模式的JDBC对象化改进等Web数据库系统开发技术的改进方案,从而很好地保持了JDBC的优点并改进了其在Web系统开发中的缺点。

1.1 MVC模式

MVC 模式(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三层——模型层、视图层、控制层。[5,6]视图(View)代表用户交互界面,绘制和显示模型的数据,提交由控制器提供的数据。模型(Model)是业务流程/状态的处理模块,包括对业务数据的存取、加工、综合等;维护应用程序的状态和数据,可以接受来自视图的查询并做出响应;同时当模型的数据发生变化时,它把变化通知给视图,视图根据模型的变化来更新自己。模型的设计可以说是 MVC最主要的核心。控制(Controller)是基于应用程序的逻辑更新模型,它要告诉程序开发者,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层自身却并不做任何的数据处理。控制层负责View和Model之间的流程控制,一方面是将用户界面(View)的操作映射到具体的 Model,以完成具体的业务逻辑,另一方面是将通过Model处理完的业务数据及时反应到用户界面(View)上。

1.2 JDBC技术改进

1.2.1 基于MVC模式的JDBC对象化的改进

对于程序员来说,JDBC在数据库连接时,整个数据库连接过程并不是面向对象的,而是面向过程的。[7]JDBC每次连接数据库,同一数据库连接流程都需要从头到尾编译一次,使得数据库连接过程繁琐,编程效率低下。[8]另外,由于数据库操作比较复杂,对于不同的数据库操作 JDBC中提供不同的Statemeni方法,这样加大了编程的工作量,也不符合面向对象的思想。

基于MVC设计思想,对JDBC的连接过程进行了改进。首先,将整个JDBC数据库连接过程封装入一个叫做DBAccess的类中,利用 DBAccess类定义的对象为程序员提供统一的编程接口;接着在 DBAccess类中创建一个 public方法,即DBControl方法,用DBControl方法作为DBAccess类中的控制层;然后用ExecuteUpdate()方法执行Insert、Update、Delete操作,用 ExecuteQuery()方法执行 select操作等。这些对数据操作所用到的方法的调用过程对于用户来说是透明的,实现了MVC设计思想中的控制层的功能。

显然,按照上述方法封装的DBAccess类中,DBContro1方法起到了控制层的作用。用private函数来实现的ExecuteUpdate()、ExecuteQuery()等方法则实现了具体的数据库连接等业务流程。ExecuteUpdate()、ExecuteQuery()等方法就是DBAeeess类中的模型层,对用户来说是不可用的、透明的。而表示层并不在 DBAccess类中,因为在整个数据库的连接过程中并不需要考虑数据库连接结果最后应该如何使用。这样,引入 MVC理念对JDBC的对象化进行改进,可以使基于JDBC的Web数据库系统具有良好的可扩展性及灵活性。

1.2.2 JDBC移植性改进

在 Web程序开发过程中,针对不同的数据库产品,JDBC是使用不同的JDBC数据库驱动程序来实现的;在连接数据库时,JDBC利用String字符串类型的参数,但是对不同的数据库系统,字符串参数需要发生变化。这种数据库连接方式对数据库系统的依赖性非常强,使得JDBC在可移植性与速度的平衡方面很难令人满意。

为改变 JDBC联结方式对数据库的依赖,创建一个 Const类,用来存储整个程序所需要的各种常量,并将JDBC数据库接连时所用的全部 string字符串类型的参数字符串变量作为Const类的全局变量存储。当JDBC连接数据库时,从Const类提取相应字符串变量传递给DBAccess类。

由于 Const类的引入,创建数据库连接所需的字符串参数存储在内部文件中,数据连接的速度会有很大的改观。同时又因为各连接参数没有存储在 DBAccess类文件中,很好地保持了JDBC的可移植性。当数据库产品改变时,我们提练并用某种方法改变存储于Const类中的数据库连接参数,对Const类重新编译后即快速可顺利连接改变后的数据库,实现了可移植性与连接速度的统一。

1.2.3 JDBC返回值改进

JDBC数据库连接操作的返回值类型,是JDBC默认的结果集类Resultset。Resultset类的功能十分强大,包含String、Int、Data等各种常用的数据类型。在传统的JDBC开发中,Resultset中的数据程序员并不能直接使用,往往还需要将其转化为其他能够直接使用的数据类型。为解决此问题,提出了JDBC返回值的改进方案。

首先,建立Data类。Data类继承于由Resultset类转化后的Hashtable类型,这样当创建JDBC数据库的首次连接时,如果结果集类Resultset中的数据较多,利用继承于Hashtable类的Data类可以实现结果集中数据的快速检索,同时Data类继承Hashtable类方法的基础上,又具有特殊的的属性和方法,可以满足Web数据库连接开发的特殊性要求。

接着建立String[][]这一数据类型。基于String[][]类型的特点,一方面它可以很轻松地将数据库表中的数据转化并存储于其中,另一方面,String[][]类型中的 String类型数据很容易在JSP页面上得到体现,因此,String[][]类的引入很方便地将Resultset中的数据转化为JSP页面的数据。

由此,利用Resultset类型、继承于改进的Hashtable类型的Data类和String[][]类型,实现了对数据库查询操作的返回值的改进,使数据库中的数据能够根据用户的要求在JSP页面中得到显示。

1.3 JDBC改进技术的实现

按照MVC设计模式思想,利用上述方法,将Web程序开发分为表示层、控制层和模型层。在 DBAccess类封装了控制层和模型层,利用public方法DBControl来实现用户请求的初步处理和数据分流,利用四个private方法来分别实现用户不同的数据库操作请求,而单独建立的Const类和Data类更是辅助提高了Web程序开发的效率和Web程序的性能。

采用JAVA程序设计工具和Mysql数据库系统,在实现上述改进方案的基础上,开发出一款小型Web系统,能够实现数据的编辑、插入、删除和查询等功能。依照MVC理念对该Web系统测试,系统也能正常运行。充分验证了本文提出的技术改进方案的可行性和优越性。

2 结束语

基于MVC模式,实现了JDBC对象化改进和JDBC易用性的改进。利用DBAccess类实现了JDBC的对象化改进,利用继承于 Hashtable类的 Data类和 String[][]类的设计实现了JDBC易用性的改进。本文设计改进方案,不只适用于Web程序系统,也可以应用于其他基于 JAVA平台的软件系统。此可以很好地用于基于JDBC连接的网络数据库系统的开发。

1 梁陈剑、张 威.JDBC3.0数据库开发与设计[M].北京:北京希望电子出版社,2003.3

2 杨小平.JAVA项目案例导航[M].北京:科学出版社.2003.8

3 陆正武、张志立.JAVA 项目开发实践(2)[M].北京:中国铁道出版社,2005.7

4 李华鹰.Java中间件开发技术[M].北京:中国水利水电出版社,2005.8

5 陆荣幸、郁 洲等.J2EE平台上MVC设计模式的研究与实现[J].计算机应用研究,2003.20(3):144~146

6 袁梅冷、黄烟波等.J2EE应用模型中MVC软件体系结构的研究与应用[J].计算机应用研究,2003.20(3):147~149

7 何成万、余秋惠.MVC模型2及Struts软件框架的研究[J].计算机工程,2002(5):274~275

8 宋善德、郭 飞.基于Java的Web数据库的连接池技术的研究[J].计算机工程与应用,2002.38(8):201~203

The study for improving JDBC technique in the development of the Web program

Chang Wanjun,MA Shixia

Based on the MVC model, it accomplishs to improve the objectification of JDBC through the establishment of DBAccess type.Through the designs of String [] [] type and Data type which inheritances from the improvement Hashtable type, it realizes to make JDBC easy.The Web system, designesd base on the program of improving objectification and ease for using of JDBC is able to be proper functioning by the test, which shows us that the program of improving is feasible.

MVC; technique improvement; JDBC

TP311

A

1000-8136(2010)15-0144-02

猜你喜欢
对象化程序开发易用性
政务软件易用性评测探究
对象化的思想:人类生活中的信息
论《1844年经济学哲学手稿》中的对象化理论:作为马克思哲学的开端与基石
浅析大学生在兼职小程序开发中遇到的问题
APP应用程序开发模式探究
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例
老年人家电产品易用性设计研究
中国国际人才交流大会网站易用性评价调查问卷
探究视听艺术中的美学体现
桑塔耶纳美学的“解构”与“建构”