首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTable TableRowSorter或重新查询MySQL DB?

JTable TableRowSorter或重新查询MySQL DB?
EN

Stack Overflow用户
提问于 2011-05-31 15:13:17
回答 2查看 1K关注 0票数 0

使用JDBC和MySQL,我在JTable中显示了一个MySQL表。目前,只要启动我的Java应用程序,就会在数据库表中查询所有结果(例如,SELECT * FROM tableExample),然后由JTable显示这些结果。

我的问题是,如果我希望应用一个(或两个)过滤器,是重新查询MySQL表并更新JTable更好,还是使用TableRowSorter()更好?

目前,我的表包含大约23,000个结果。

此外,如果有人有如何更新一个新的查询JTable的建议或代码示例,我将非常感谢。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-31 15:52:18

每个JTable都有一个TableModel来保存它的数据。默认实现是DefaultTableModel,但您可以实现自己的实现,具体取决于要使用的筛选器。如果再次查询数据库,可以在TableModel上设置数据,也可以在JTable上设置TableModel的新实例。

代码语言:javascript
复制
model = new DefaultTableModel();
table = new JTable(model);

...query the database, do either:
model.setDataVector(...);
table.setModel(new DefaultTableModel(...));

查询数据库和客户端过滤/排序哪一个更好,这个问题不能得到普遍的回答。这取决于您的环境和用例。如果从远程数据库进行查询,最好进行客户端筛选,因为传输23k行数据会花费很长时间。如果您的客户机是一台速度相当慢的机器,那么在数据库中进行排序可能比在Java中进行排序更快。如果这些类型的资源不是问题所在,那么使用您觉得更舒服的任何解决方案。与SQL相比,Java中的排序工作要多一些,而过滤在Java中实现时则更加通用。

票数 1
EN

Stack Overflow用户

发布于 2011-05-31 15:36:12

您的问题有很多解决方法,例如Table From DatabaseResultSet Table

也可以在这个论坛上搜索,

用ResultSetTableModel在谷歌上搜索

hart用来判断哪种解决方法更好,

但是Currently my table contains ~23,000 results.会更好地减少SQL语句中的行数,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6184142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档