gpt4 book ai didi

java - 在 Java 桌面应用程序中实现分页 SQL 结果表的有效方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:24 24 4
gpt4 key购买 nike

我需要从 SQL 选择结果集构建一个表。我想为表添加一些分页功能,因为结果集可能非常大。有很多讨论如何在 SQL 级别进行分页。但是如何在GUI层面实现分页呢?我有两个想法:

  1. 以 Web UI 样式进行分页 - 例如谷歌搜索结果分页;
  2. “Excel 样式”- 表格所在的滚动 Pane 会随着用户向下滚动而展开。

第二个看起来更好但实现起来比较复杂。何时为下一个数据 block 执行 SQL 选择,以便用户无需等待。应该有一些“预读”逻辑?如果用户快速滚动会发生什么?如何处理不再可见的行以保持持续的内存使用?也许已经有这样的表格组件或很好的例子?或者也许这个漂亮的表格功能不值得努力实现它?

最佳答案

您可以直接在您的 TableModel 中执行所有操作,无需更改 UI 中的某些内容(您可能会在 UI 中显示某些内容 - 状态 - 但您不需要更改 JTable 呈现自身的方式)。

只需实现一个 JDBCTableModel 即可:

  • 计算结果并将此值作为 getRowCount() 返回。
  • 有一个后台线程将页面 X(第 X 行到第 X 行 + page_size)放入内存
  • 如果 View (JTable) 请求的行不存在(页面未加载),则在左上角或右上角的某处显示消息“正在加载数据...”并返回空单元格。

分页对于 Swing 应用程序没有意义,它是在当前花哨的 AJAX 库可以实现表格滚动之前发明的(参见 http://www.ext-livegrid.com/)。

关于java - 在 Java 桌面应用程序中实现分页 SQL 结果表的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/934927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com