mySQL在JavaFX中向TableView添加重复数据
我还想使用observable list将mySql数据库中的数据添加到表视图中,并使用“刷新按钮”在每次单击表视图时向其添加新行。代码如下: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);
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);