已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
10天前关闭。
Improve this question
目标是使用JavaFX表更改SQL表中的值。阅读工作正常,只是缺少插入。
private void getQuery() {
if (aktualisieren == false) {
query = "INSERT INTO tabelle (Verein, Spiele, Siege, Niederlagen, Unentschieden, Tore, Gegentore, Tordifferenz, Punkte) VALUES (?,?,?,?,?,?,?,?,?)";
}else{
query = "UPDATE `tabelle` SET "
+ "`Verein`=?,"
+ "`Spiele`=?,"
+ "`Siege`=?,"
+ "`Niederlagen`=?,"
+ "`Unentschieden`=?,"
+ "`Tore`=?,"
+ "`Gegentore`=?,"
+ "`Tordifferenz`=?,"
+ "`Punkte`=?";
}
}
private void insert() {
try {
preparedStatement = connection.prepareStatement((query));
preparedStatement.setString(1, vereinFid.getText());
preparedStatement.setString(1, spieleFid.getText());
preparedStatement.setString(1, siegeFid.getText());
preparedStatement.setString(1, niederlagenFid.getText());
preparedStatement.setString(1, unentschiedenFid.getText());
preparedStatement.setString(1, toreFid.getText());
preparedStatement.setString(1, gegentoreFid.getText());
preparedStatement.setString(1, punkteFid.getText());
} catch (SQLException exception) {
Logger.getLogger(AddTabelleController.class.getName()).log(Level.SEVERE, null, exception);
}
}
@FXML
void speichern(MouseEvent event) {
connection = DbVerbindung.getConnect();
String Verein = vereinFid.getText();
String Spiele = spieleFid.getText();
String Siege = siegeFid.getText();
String Niederlagen = spieleFid.getText();
String Unentschieden = unentschiedenFid.getText();
String Tore = toreFid.getText();
String Gegentore = gegentoreFid.getText();
String Punkte = punkteFid.getText();
if (Verein.isEmpty() | Spiele.isEmpty()| Siege.isEmpty()| Niederlagen.isEmpty()| Unentschieden.isEmpty()| Tore.isEmpty()| Gegentore.isEmpty()| Punkte.isEmpty())
{
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText(null);
alert.setContentText("Bitte füllen sie die Daten aus");
alert.showAndWait();
}else{
getQuery();
insert();
leeren();
}
}
我读到我应该添加问号并减少引号,但它仍然不起作用。问题是我没有从IntelliJ得到错误消息,所以我不知道问题是什么。This is what my SQL table looks like.I get this message from SQL when I run my program.
1条答案
按热度按时间u59ebvdq1#
我在你的问题中看到了代码中的几个问题。您使用PreparedStatement是错误的。不能对setString方法的每次调用使用相同的索引。另外,根据您发布的图像,数据库表
tabelle
中的某些列具有int
数据类型,因此方法setString
可能不合适。您还应该使用try-with-resources来确保关闭PreparedStatement
。此外,只有在调用executeUpdate方法时,数据库才会被更新。考虑以下几点:(请注意,您的代码没有为列Tordifferenz
赋值,这将导致错误。您是否意识到[SQL] UPDATE将更新
tabelle
中的所有行,因为它不包含WHERE子句?在方法
speichern
中,使用的是bitwise OR而不是logical OR。