我还想使用observable list将mysql数据库中的数据添加到表视图中,使用一个“刷新按钮”,每次单击它时都会向表视图添加新行。代码如下:
public void refreshPage(){
Order curOrder = ordersList.getSelectionModel().getSelectedItem();
ordersList.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
String query = "SELECT orderID, orderStatus, orderTotalCost FROM ORDERS";
try {
DatabaseConnection DBconn = new DatabaseConnection();
connection = DBconn.getDatabaseLink();
// connection = DatabaseConnection.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
while (resultSet.next()){
Order newOrder = new Order(resultSet.getString("orderID"), resultSet.getString("orderStatus"), resultSet.getDouble("orderTotalCost"));
orders.add(newOrder);
}
ordersList.setItems(orders);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
refreshpage()链接到javafx stage上的一个按钮。orderslist是表视图,orders是可观察的列表。
但是,问题是,当多次单击refresh page按钮时,它会从数据库中一次又一次地添加相同的行,我只希望它从数据库中向tableview添加唯一的值。
1条答案
按热度按时间rxztt3cl1#
您可以使用observateset来避免添加重复项。
创建集合:
向集合添加新项(将跳过重复项):