【发布时间】:2020-12-03 16:00:03
【问题描述】:
我还想使用可观察列表将数据从 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 是 tableView,orders 是 observable 列表。
但是,问题是当多次单击刷新页面按钮时,它会一遍又一遍地从数据库中添加相同的行,我只希望它从数据库中向 tableview 添加唯一值。
【问题讨论】:
-
minimal reproducible example 请.. 用硬编码数据模拟数据库连接(在确定数据库访问按预期返回值之后:)
-
.. 并坚持 java 命名约定!
-
我模拟了数据库连接并且它工作正常,我希望它在我再次单击按钮时不会添加相同的数据
-
听起来您的数据库中有重复项...
标签: java mysql database javafx