mySQL在JavaFX中向TableView添加重复数据

mySQL在JavaFX中向TableView添加重复数据,java,mysql,database,javafx,Java,Mysql,Database,Javafx,我还想使用observable list将mySql数据库中的数据添加到表视图中,并使用“刷新按钮”在每次单击表视图时向其添加新行。代码如下: public void refreshPage(){ Order curOrder = ordersList.getSelectionModel().getSelectedItem(); ordersList.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

我还想使用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阶段上的一个按钮。 ordersList是表视图,orders是可观察列表


但是,问题是,当多次单击“刷新页面”按钮时,它会不断地从数据库中添加相同的行,我只希望它从数据库中向tableview添加唯一的值。

您可以使用ObservableSet来避免添加重复的项。
创建集合:

ObservableSet<Order> observableSet = FXCollections.observableSet();

请使用硬编码数据模拟db连接(在确保db访问按预期返回值后:)。。并坚持java命名约定!我做了模拟数据库连接,它工作了,我希望它不要添加相同的数据,当我再次点击按钮,只是听起来你有重复的项目在您的数据库。。。
observableSet.add(newOrder);