Прямо сейчас я пытаюсь реализовать редактируемое Tableview с помощью javafx, и у меня есть одна проблема. Пока что я могу дважды щелкнуть по ячейке и написать новое значение внутри нее. Но проблема в том, что я не могу обновить базу данных
Вариант использования заключается в том, что я могу добавлять маршруты в форму, и я должен иметь возможность редактировать эти маршруты, поэтому при добавлении
Покавот что я попробовал:
Код для редактирования таблицы
public void editTable() throws SQLException {
// This is in order to fill the box with the db values. But it is empty
ObservableList<String> planes = FXCollections.observableArrayList();
ObservableList<String> startFlughafen = FXCollections.observableArrayList();
ObservableList<String> zielFlughafen = FXCollections.observableArrayList();
Statement stateMentAirplane = connection.createStatement();
ResultSet myRsAirplane = stateMentAirplane.executeQuery(
"select * from gesellschaftflugzeuge where fluggesellschaft =\"" + fluggesellschaft + "\"");
while (myRsAirplane.next()) {
planes.add(myRsAirplane.getString("Hersteller"));
}
startAirport.setCellFactory(ComboBoxTableCell.forTableColumn());
airplane.setCellFactory(ComboBoxTableCell.forTableColumn());
}
public void prepareUpdateTable( String startFlughafen
) throws SQLException {
PreparedStatement pStatement = connection
.prepareStatement("Update fluglinie set startFlughafen =? ");
pStatement.setString(1, startFlughafen
);
}
public void initiateUpdateTable() {
try {
prepareUpdateTable(startAirport.getCellFactory().toString());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Инициализация таблицы
public void initializeTable() {
try {
// Ablesen
Statement pStatement = connection.createStatement();
flightList = FXCollections.observableArrayList();
ResultSet myRs = pStatement
.executeQuery("select * from fluglinie where fluggesellschaft =\"" + fluggesellschaft + "\"");
while (myRs.next()) {
flightList.add(new flightRouteAddModel(myRs.getString("startFlughafen"),
myRs.getString("zielFlughafen"), myRs.getString("startDatum"), myRs.getString("flugzeug"),
myRs.getInt("intervall"),
}
} catch (Exception e) {
System.out.println(e);
}
startAirport.setCellValueFactory(new PropertyValueFactory<>("startAirport"));
targetAirport.setCellValueFactory(new PropertyValueFactory<>("targetAirport"));
flightDate.setCellValueFactory(new PropertyValueFactory<>("flightDate"));
airplane.setCellValueFactory(new PropertyValueFactory<>("airPlane"));
table.setEditable(true);
table.setItems(flightList);
initiateUpdateTable();
try {
editTable();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Благодарю вас за все ответы до руки