使用JDBC和MySQL,我在JTable中显示了一个MySQL表。目前,只要启动我的Java应用程序,就会在数据库表中查询所有结果(例如,SELECT * FROM tableExample),然后由JTable显示这些结果。
我的问题是,如果我希望应用一个(或两个)过滤器,是重新查询MySQL表并更新JTable更好,还是使用TableRowSorter()更好?
目前,我的表包含大约23,000个结果。
此外,如果有人有如何更新一个新的查询JTable的建议或代码示例,我将非常感谢。
提前谢谢。
发布于 2011-05-31 15:52:18
每个JTable都有一个TableModel来保存它的数据。默认实现是DefaultTableModel,但您可以实现自己的实现,具体取决于要使用的筛选器。如果再次查询数据库,可以在TableModel上设置数据,也可以在JTable上设置TableModel的新实例。
model = new DefaultTableModel();
table = new JTable(model);
...query the database, do either:
model.setDataVector(...);
table.setModel(new DefaultTableModel(...));查询数据库和客户端过滤/排序哪一个更好,这个问题不能得到普遍的回答。这取决于您的环境和用例。如果从远程数据库进行查询,最好进行客户端筛选,因为传输23k行数据会花费很长时间。如果您的客户机是一台速度相当慢的机器,那么在数据库中进行排序可能比在Java中进行排序更快。如果这些类型的资源不是问题所在,那么使用您觉得更舒服的任何解决方案。与SQL相比,Java中的排序工作要多一些,而过滤在Java中实现时则更加通用。
发布于 2011-05-31 15:36:12
您的问题有很多解决方法,例如Table From Database或ResultSet Table
也可以在这个论坛上搜索,
用ResultSetTableModel在谷歌上搜索
hart用来判断哪种解决方法更好,
但是Currently my table contains ~23,000 results.会更好地减少SQL语句中的行数,
https://stackoverflow.com/questions/6184142
复制相似问题