`
zhajie
  • 浏览: 2560 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

swing列表查询分页的探讨

阅读更多

b/s结构系统的展示数据大多数是通过翻页来查看更多数据,有小部分使用ajax的js来查看更多的数据,应该说b/s系统查看数据的方式是不经济的,每次分页务必都需要重新count.

现准备改用swing重构b/s系统,展示数据方式我想抛弃传统的翻页方式。例如oracle的pl/sql developer 中数据列表查看的方式,就可以增量的查看,向下滚动的方式查看数据,我认为这种方式很好,查看数据更全面,性能好,而且可以更方便的从界面导出数据。

不知各位的看法如何?
分享到:
评论
20 楼 morle 2009-06-29  
swing显示跟浏览器显示的的原理不同的,如果你对swing了解的话,swing的jtable组件中显示的数据,每一列一般是对应一个对象,所以显示一般不会卡什么,如果数据量超多,而且改动更新多,建议只是显示可见的部分,这样只是查询一次保存在内存中,避免翻页,排序就要去重新查询数据库,在repaint jtable组件。如果想性能更好的话,可以参考炒股软件,她们也是一次性查询,保存在内存中,只显示可见的部分,即重写Tablemodel。如:一个table有10000条数据,有10列,默认情况下,table中的model(数据保存的地方)中数据,在页面上显示出来,只会是10个对象
19 楼 jake0719 2009-06-29  
启用类似DB4O的缓存加载数据,缓存的性能基本可以决定当鼠标下拉时数据加载的速度.对应的对象如果比较大, 而且数据量大, 那可能会有内存需求大的问题.
18 楼 holan 2009-06-28  
我试试能不能回复,仅仅是打酱油的
17 楼 icewubin 2009-06-26  
zhajie 写道
不知道有没有哪位尝试过类似于pl/sql developer 的数据查看方式?

很好,默认只返回前15-30条数据,用户需要的话,自行点击以获取所有数据。
16 楼 zhajie 2009-06-24  
wkpub 写道
以前在项目中做过一个根据滚动条及鼠标滚动来动态载入数据的swing的table组件,类似oracle或mssql server表数据查看窗口的功能,但后来换成了传统的分页的方式,原因是:数据载入的频率与用户的操作很难匹配,如果用户手太快,会造成频繁的数据载入请求,并且占用大量客户端内存,实际效果并不好!



oracle erp的方式实际应用中确实感觉不舒服而且反应迟钝,

不知道有没有哪位尝试过类似于pl/sql developer 的数据查看方式?
15 楼 wkpub 2009-06-24  
以前在项目中做过一个根据滚动条及鼠标滚动来动态载入数据的swing的table组件,类似oracle或mssql server表数据查看窗口的功能,但后来换成了传统的分页的方式,原因是:数据载入的频率与用户的操作很难匹配,如果用户手太快,会造成频繁的数据载入请求,并且占用大量客户端内存,实际效果并不好!
14 楼 zhajie 2009-06-23  
“笨笨的菜亲虫”的方法类似于oracle erp中的列表,当列表的下拉滚动条到达顶部或到达底部的时候触发事件,进行数据加载。
13 楼 vlinux 2009-06-22  
Zoran 写道
zhajie 写道
▄︻┳═一 写道
不知道楼主想讨论啥?
技术可行性? - List里增加数据而已
性能? - 数据不是很多就随便用户取下一页了
用户体验? - 要定位到某一页怎么办?如果记录多了用户找一条数据不知道多麻烦。



性能:即使数据不多也要往多的方向去考虑,当然有个数量级别,例如,十万级别,百万级别,千万级别

用户体验:没什么定位到哪一页的概念,这是web的思维,在swing中,可以输入关键字或者关键字的首个字符甚至拼音的首个字母就可以定位数据。



貌似您说的这个输入关键字检索的特性也仅限于table model中的数据把 数据量小还行~
定位到某一页还是要自己做 不像B/S下面有现成的分页组件可以用

问 :百万级数据在Swing table中如何关键字定位?难到要把所有数据塞到Table model里?肯定放不了那么多吧 ?



NO,如果数量级别很高,高到不可能放在内存中的或者放在内存中代价太高的时候,一般我们是采用一个窗口的机制来进行缓冲
比如下图:#代表的是尚未加载的数据,[]之内的是缓存在内存中的数据,$的数据则标示当前界面正在展示的数据
#########[===========$$$$$$$$$=========]##########

拖动展示窗口的时候,当展示到达缓存边界时,
#########[====================$$$$$$$$$]##########

触发加载数据的操作
##################[===========$$$$$$$$$==========]

这个小技巧无论是在Ajax和Swing都可以用得到
12 楼 Zoran 2009-06-22  
zhajie 写道
▄︻┳═一 写道
不知道楼主想讨论啥?
技术可行性? - List里增加数据而已
性能? - 数据不是很多就随便用户取下一页了
用户体验? - 要定位到某一页怎么办?如果记录多了用户找一条数据不知道多麻烦。



性能:即使数据不多也要往多的方向去考虑,当然有个数量级别,例如,十万级别,百万级别,千万级别

用户体验:没什么定位到哪一页的概念,这是web的思维,在swing中,可以输入关键字或者关键字的首个字符甚至拼音的首个字母就可以定位数据。



貌似您说的这个输入关键字检索的特性也仅限于table model中的数据把 数据量小还行~
定位到某一页还是要自己做 不像B/S下面有现成的分页组件可以用

问 :百万级数据在Swing table中如何关键字定位?难到要把所有数据塞到Table model里?肯定放不了那么多吧 ?

11 楼 zhajie 2009-06-22  
▄︻┳═一 写道
不知道楼主想讨论啥?
技术可行性? - List里增加数据而已
性能? - 数据不是很多就随便用户取下一页了
用户体验? - 要定位到某一页怎么办?如果记录多了用户找一条数据不知道多麻烦。



性能:即使数据不多也要往多的方向去考虑,当然有个数量级别,例如,十万级别,百万级别,千万级别

用户体验:没什么定位到哪一页的概念,这是web的思维,在swing中,可以输入关键字或者关键字的首个字符甚至拼音的首个字母就可以定位数据。

10 楼 iampurse 2009-06-21  
记得有个人对我说过:我现在都不用百度,都是用谷歌。
谷歌你懂吗? www.google.cn .

你用的什么啊,g.cn啊 连百度都不会啊。--
9 楼 iampurse 2009-06-21  
没言语了...
8 楼 whaosoft 2009-06-21  
icefire 写道
看不出来这和是否是b/s系统有关系。。。ajax同样可以实现“增量的查看,向下滚动的方式查看数据”

同意 没明白lz的意思
7 楼 taupo 2009-06-21  
不过好歹做成了和html差不多的
6 楼 taupo 2009-06-21  
我用swing分过,是比较麻烦
5 楼 fjlyxx 2009-06-21  
比较郁闷的是客户不能接受 鼠标中间翻页(GOOGLE阅读器一样的)
4 楼 ▄︻┳═一 2009-06-20  
不知道楼主想讨论啥?
技术可行性? - List里增加数据而已
性能? - 数据不是很多就随便用户取下一页了
用户体验? - 要定位到某一页怎么办?如果记录多了用户找一条数据不知道多麻烦。
3 楼 lovejavaei 2009-06-20  
swing还是用来做显示而已,所不同的是用swing做UI层的话,做UI层的缓存就方便很多了
2 楼 zhajie 2009-06-20  
icefire 写道
看不出来这和是否是b/s系统有关系。。。ajax同样可以实现“增量的查看,向下滚动的方式查看数据”

是的,
本贴主要是探讨c/s(swing)下的数据列表方式,
因为系统将采用swing+ejb3架构。
1 楼 icefire 2009-06-19  
看不出来这和是否是b/s系统有关系。。。ajax同样可以实现“增量的查看,向下滚动的方式查看数据”

相关推荐

    java_swing表格分页

    在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常需要处理大量的数据,然而,如果我们将所有数据一次性加载到表格中,将会对应用程序的性能产生巨大影响。这时,...

    java Swing、SWT分页

    在提供的`Swing分页.txt`文件中,可能包含了使用Swing实现分页的代码示例和详细步骤,这将有助于你更好地理解和实现Swing中的分页功能。而`SwtUtils.rar`可能是包含了一些与SWT相关的工具类或示例项目的压缩包,解压...

    swing分页技术

    本文将通过分析一份Swing分页技术的代码示例,深入探讨如何在Swing应用中实现高效的数据分页。 #### 代码解读与知识点解析 1. **基础环境配置**:在代码的开头部分,首先设置了Swing的外观和感觉(LookAndFeel),...

    Swing+MySQL实现简单分页

    在本文中,我们将深入探讨如何使用Java Swing作为前端界面,并结合MySQL数据库实现简单的分页功能。Swing是Java提供的一种轻量级GUI工具包,它允许开发者创建丰富的用户界面,而MySQL则是广泛应用的关系型数据库系统...

    Swing下滚动条实现仿分页

    我们将深入探讨Swing组件JTable、JScrollPane以及如何利用它们来实现这样的功能。 JTable是Swing中的一个核心组件,它用于显示和编辑表格数据。JTable可以与TableModel配合,使数据动态更新,同时支持排序、选择和...

    java基于Swing组件的GUI设计

    Swing提供了大量的组件,如按钮、文本框、列表、表格等,这些组件可以帮助我们构建复杂的交互式界面。在"java基于Swing组件的GUI设计"这个主题中,我们将深入探讨如何利用Swing进行GUI开发。 首先,Swing组件是轻量...

    java动态树形菜单与分页

    在实现分页时,数据库需要支持高效的分页查询,比如利用索引来优化ORDER BY和LIMIT子句,提高查询性能。 总结一下,这个Java项目涵盖了动态树形菜单和分页的实现,涉及了前端交互、后端服务、数据库设计等多个方面...

    java组件swing打印测试

    本篇文章将深入探讨Java Swing如何实现打印功能。 首先,Java Swing 提供了`javax.print`包,该包提供了Java打印服务的基础框架,使得开发者能够轻松地实现文档打印。在Swing中,主要通过`javax.swing.JPrintTable`...

    --JTable的分页显示

    这篇转载的博客文章探讨了如何在`JTable`中实现分页功能。 首先,理解`JTable`的基本结构至关重要。`JTable`是基于`DefaultTableModel`的,它管理表格的数据、列名和行数。为了实现分页,我们需要创建一个自定义的`...

    java swing界面开发的一个抓取快递接口工具

    下面我们将深入探讨Java Swing和快递100接口的相关知识点。 首先,Java Swing提供了一系列的组件,如按钮(JButton)、文本框(JTextField)、面板(JPanel)、滚动窗格(JScrollPane)等,开发者可以通过这些组件...

    基于JDBC的图形用户界面实现分页示例

    本示例将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口来实现一个基于图形用户界面(GUI)的分页功能,同时涵盖MySQL、Oracle和SQL Server这三种主流关系型数据库的实现。 首先,我们需要理解JDBC...

    JTable(还分页面板示例)

    本示例将深入探讨如何使用`JTable`并结合`TabbedPane`来创建一个分页显示数据的界面。 首先,让我们来看`JTable`的使用。`JTable`是`javax.swing.JTable`类的实例,它是基于模型-视图-控制器(MVC)架构设计的。`...

    eXtremeComponents-1.0.1+中文API___分页工具

    在实际应用中,分页工具可以广泛应用于各种数据展示场景,例如报表、数据库查询结果、商品列表等。通过eXtremeComponents的分页功能,开发者可以轻松实现高效的数据管理,同时保证用户界面的流畅和友好。 总结起来...

    Java 2 图形设计卷Ⅱ:SWING

    《Java 2 图形设计卷Ⅱ:SWING》是一本深入探讨Java图形用户界面(GUI)开发的专业书籍,特别关注SWING库的使用。在Java编程领域,SWING是用于构建桌面应用的重要组件库,它提供了丰富的组件、布局管理和事件处理...

    java环境的简要列表控件

    我们将主要关注Java Swing库中的JList类和JavaFX中的ListView类,它们是两种常用的列表控件实现。 1. **Java Swing的JList**: JList是Java Swing库的一部分,用于创建多选或单选的列表。开发者可以通过传递Vector...

    studentManager

    本篇文章将深入探讨一个基于Java Swing构建的学生管理系统,该系统涵盖了基本的数据操作(CRUD)以及分页功能,旨在帮助开发者理解和实践Swing在实际项目中的应用。 首先,让我们来理解一下“Swing”。Swing是Java ...

    Java列表框与数据库绑定

    JList是Java Swing库中的一个组件,用于展示可选的项目列表。用户可以滚动浏览列表并选择一个或多个项目。JList可以通过两种方式创建:通过指定一个数组或集合来提供元素,或者通过提供一个ListModel接口的实例。 ...

    java用户登录界面并连接数据库(教师工资查询)

    在本项目中,我们主要探讨的是如何利用Java编程语言创建一个用户登录界面,并与数据库进行交互,以便查询教师的工资信息。这个系统的核心功能包括图形用户界面(GUI)的搭建、用户验证机制以及数据的展示。以下是这...

    java 日程管理,可按年月日查询行程记录

    10. **优化与性能**:对于大量日程记录,可能需要考虑查询性能优化,如索引建立、分页加载等策略。 以上是构建这样一个日程管理系统的概览,涵盖了从数据模型到用户交互的多个层面。实际开发中,还可能涉及到版本...

    关于商品查询

    下面我们将深入探讨涉及的技术点、开发过程以及可能的功能实现。 首先,用户登录功能是任何有权限控制的系统的基础。在这个项目中,用户需要登录才能访问商品信息。这通常涉及到以下几个关键知识点: 1. **用户...

Global site tag (gtag.js) - Google Analytics