分享
 
 
 

进一步提高JDBC应用程序的性能(二)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

作者: 赵杨 笔名:bootcool

[bootcool@263.net,bootcool@163.net]

美丽而温暖的昆明其实很适合做冷静的思考

进一步提高JDBC应用程序的性能(二)

二:在面向对象的程序设计和提升程序性能之间做出平衡

当我们设计数据库应用程序的结构时,经常需要把对象模型映射成数据库中的表,或者把表反向映射成对象模型。面向对象的一个基本原则是:使得每一个对象与真实世界中的对应物具有共同的特征,以符合我们的思维习惯。

比如,数据库中有这样一张学生表:

Id

Name

Department

Position

Address

1

张三

物理系

团员

昆明

现在,我们需要把该表从数据库中映射给用户,基于上述原则,我们考虑封装一个类(在这我们暂时就称它为Record Set,当然具体到对学生表的映射,指的就是Student类),并且得出一个遵循面向对象设计原则的映射方案:

(图3――方案1)

我们知道,数据库应用程序的一个主要功能就是要把从数据库中查询到的结果,以某种形式再现给用户。为了符合用户的习惯,我们的程序使用了Java Swing 包中的JTable作为用户和程序之间交互的接口。我们现在唯一要做的就是确保程序映射数据的准确与快速.

我们使用AbstractTableModel (关于AbstractTableModel 和 JTable的说明可以查看JDK1.3的Doc)作为映射数据的接口,当然也是用户与程序交互的核心。我们知道一个表格模型可以抽象为一个二维对象数组,或者二维Vector这样的数据结构。于是,我们有了另一个基于数据结构的映射方案:

(图4――方案2)

那究竟选择哪种方法呢?通过下表的比较,我们不难得出结论。

映射方案

面相对象

封装性

易理解性

灵活性

接口易实现性

工作量小,性能好

方案1

ü

ü

ü

方案2

ü

ü

ü

(表 4)

说明1:方案1表面上似乎遵循了面向对象的原则,但是:

(1):其工作量显然比方案2大。

(2):结果集因为类封装而失去了灵活性。

(3):中间的各种转化会使程序的性能降低。

说明2:但是方案1 在很多情况下都是最佳的选择。因为,当用户通过Web方式与程序交互时,实现对结果集的再封装就是必要的了。

小结:在笔者的程序中,为了提高程序的性能,不得以放弃了面向对象的程序设计原则。而以JTable和AbstractTableModel API的本身特性反向得出了映射方案。有时依赖于API提供的方法,往往能提高程序的性能。当然这样的选择,主要取决于实际的要求和整个系统的结构设计,我们应该从不同的角度去考虑,最后才能做出平衡。

赵杨:2002.3.31

参考文章:

http://java.sun.com/j2se/1.3/docs/guide/jdbc/getstart/GettingStartedTOC.fm.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有