Hallo, ich habe in meinem Programm eine TabelView die mit einer SqLite Datenbank verbunden ist und diese möchte ich über die TabelView editieren und updaten. Aber alles was ich versuche funktioniert nicht.. entweder gibt es keine Fehlermeldung und in der Datenbank aktualisiert sich nichts oder es kommen Execptions und nichts aktualisiert sich...
Hier ist einmal meine Update Methode;
Die update Methode hab ich mir mithilfe von StackoverFlow zusammen gebastelt..
bei dennen funktioniert es aber bei mir nicht.. kann mir jemand sagen wo mein Fehler liegt?
Hier meine Load und edit Methode;
und hier meine Recipe Klasse;
Hier ist einmal meine Update Methode;
Die update Methode hab ich mir mithilfe von StackoverFlow zusammen gebastelt..
bei dennen funktioniert es aber bei mir nicht.. kann mir jemand sagen wo mein Fehler liegt?
Java:
private void updateData(String column, String newValue) {
try (
Connection connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Martin\\eclipse-workspace\\VapeControl\\src\\Rezept.sqlite\\" );
PreparedStatement stmt = connection.prepareStatement("UPDATE rezeptListe SET "+ column+" = ? WHERE " + column);
) {
stmt.setString(1, newValue);
} catch (SQLException ex) {
System.err.println("Error");
ex.printStackTrace(System.err);
}
}
Hier meine Load und edit Methode;
Java:
public void loadRecipes() {
try {
rezeptListe = recipeModel.loadRecipes(database.getStatement(), rezeptListe);
} catch (SQLException e) {
e.printStackTrace();
}
rezpetTable.setEditable(true);
rezpetTable.getSelectionModel().setCellSelectionEnabled(true);
nameCol.setCellFactory(TextFieldTableCell.forTableColumn());
gesamtMengeCol.setCellFactory(TextFieldTableCell.forTableColumn());
aromaCol.setCellFactory(TextFieldTableCell.forTableColumn());
baseCol.setCellFactory(TextFieldTableCell.forTableColumn());
dosierungCol.setCellFactory(TextFieldTableCell.forTableColumn());
nameCol.setCellValueFactory(new PropertyValueFactory<Recipe, String>("Name"));
gesamtMengeCol.setCellValueFactory(new PropertyValueFactory<Recipe, String>("GesammtMenge"));
aromaCol.setCellValueFactory(new PropertyValueFactory<Recipe, String>("Aroma"));
baseCol.setCellValueFactory(new PropertyValueFactory<Recipe, String>("Base"));
dosierungCol.setCellValueFactory(new PropertyValueFactory<Recipe, String>("Dosierung"));
rezpetTable.setItems(rezeptListe);
nameCol.setOnEditCommit(event -> {
Recipe recipe = event.getRowValue();
recipe.setName(event.getNewValue());
updateData("Name ", event.getNewValue());
});
}
und hier meine Recipe Klasse;
Java:
package de.mb.recipe;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public class Recipe {
private final StringProperty Name;
private final StringProperty GesammtMenge;
private final StringProperty Aroma;
private final StringProperty Base;
private final StringProperty Dosierung;
public Recipe (String Name, String GesammtMenge, String Aroma, String Base, String Dosierung ) {
this.Name = new SimpleStringProperty(Name);
this.GesammtMenge = new SimpleStringProperty(GesammtMenge);
this.Aroma = new SimpleStringProperty(Aroma);
this.Base = new SimpleStringProperty(Base);
this.Dosierung = new SimpleStringProperty(Dosierung);
}
public String getName() {
return Name.get();
}
public void setName(String value) {
Name.set(value);
}
public String getGesammtMenge() {
return GesammtMenge.get();
}
public void setGesammtMenge(String value) {
GesammtMenge.set(value);
}
public String getAroma() {
return Aroma.get();
}
public void setAroma(String value) {
Aroma.set(value);
}
public String getBase() {
return Base.get();
}
public void setBase(String value) {
Base.set(value);
}
public String getDosierung() {
return Dosierung.get();
}
public void setDosierung(String value) {
Dosierung.set(value);
}
//property values
public StringProperty NameProperty() {
return Name;
}
public StringProperty GesammtMengeProperty() {
return GesammtMenge;
}
public StringProperty AromaProperty() {
return Aroma;
}
public StringProperty BaseProperty() {
return Base;
}
public StringProperty DosierungProperty() {
return Dosierung;
}
}