用SWT中的虚拟表格解决大数据量加载问题
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 | |||||
问题的提出:一般情况下,我们采用分页技术来解决大数据量加载的问题,这也是最好的办法。但是在有的项目中会遇到一次加载"万单位级别"数据的需求。尽管这是很糟糕的做法,即耗资源、加载速度又慢,但用户明指明了这样的需求,不这么做还不行。
解决方法:采用SWT中的虚拟表格技术来创建拥有大数据量的表格,解决加载速度让人难以忍受的问题,提升加载效率。
为了充分的说明问题,本文通过对比常规方法和虚拟表格技术加载2万条数据所需的时间,来说明虚拟表格在加载大数据量时的优越表现。
第一步:准备数据
1. 首先建立所需的数据表
2.插入数据(写测试的目的一般带有破坏性,我插了2万条)
3.创建一个DAO文件,用来处理插入和获得数据:
ConnDAO.java,详细内容请参看源文件
第二步:创建测试文件
在开始之前,请你确认正确安装了SWT Designer,创建一个基于SWT/JFS的项目(不是必须,但这样可以方便使用可视化编辑,当然你也可以直接编写代码)。
1.为了与虚拟表格进行对比,我们首先用普通Table加载这2万条数据。
HelloWorld_Common.java
写完程序后,你可以直接在Eclipse中运行,运行结果如下图所示,当然不要忘记适当的计算一下时间,我的电脑的配置是:
Intel 双核1.73GHz,
用的是:jdk
我的运行时间约是:10 秒。
我想这样的速度,你的客户是不能忍受的,而且创建了那么多的Item,如果用户不看,且不是造成了严重的资源浪费。
![]() 2.做了这么多准备工作,下面开始令人兴奋的虚拟表格之旅吧。
创建HelloWorld_Virtual.java
呵呵,run一下吧,我测试的结果,算上绘制界面的时间也就1秒左右,如果在界面上做个查询,再来显示的话,基本“万单位”级别的数据也能做到即时加载啦
在源代码中我已经做了较详细的注释,因为本文主要以实际操作为主,所以没有对具体的方法进行深入的分析。另外一个原因就是,现在网上有一篇文章《Virtual Tables and Trees》对虚拟表格和树做了较深入的分析,我不再重复他人的劳动,你可以参考一下。网上有这篇文章的中文版,不过如果你打算在IT界混的话,还是建议你读英文吧。
本文出自 “Grow up” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |
附件下载:
示例程序源代码
示例程序源代码



jyz608
博客统计信息
热门文章
最新评论
友情链接