📅  最后修改于: 2023-12-03 15:20:27.562000             🧑  作者: Mango
在使用 JavaFX 中的 TableView 展示 MySQL 数据库中的数据时,会遇到重复数据的问题。
在 TableView 中展示 MySQL 数据库数据时,可能会重复显示相同的数据。这是由于数据源中存在重复数据,或者 TableView 中存在相同的行的原因。
在查询数据时,可以使用 DISTINCT
关键字去重:
SELECT DISTINCT column1, column2, ... FROM table_name;
将查询的数据存储到一个 Set 集合中,即可去重:
ResultSet rs = statement.executeQuery(sql);
Set<String> set = new HashSet<>();
while (rs.next()) {
set.add(rs.getString("column_name"));
}
TableView 中有内置的去重方法,可以通过以下方式使用:
table.setRowFactory(tv -> new TableRow<>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!empty) {
ObservableList<TableRow<T>> rows = tv.getItems();
if (rows.indexOf(this) != rows.lastIndexOf(this)) {
this.setStyle("-fx-background-color: lightgray");
}
}
}
});
以上代码将相同的行标记为灰色。
通过以上解决方法,我们可以解决 TableView 中显示重复数据的问题。在实际开发中应根据具体情况选择最适合的解决方法。