2016-10-20 5 views
0

Netbeansプロジェクトでは、mySQLデータベースをJavaFXプロジェクトで更新する必要があります。 私はアカウントを追加できますが、私はアカウントを編集できません。SQLアップデート - エラーが発生する

ここにエラーを出すメソッドがありますが、私が間違っていることがわかりません。 SQLの構文が間違っていて、どこに手が必要なのかもしれません。

@Override 
public void wijzigenAccount(Account teWijzigenAccount) throws DBException { 
    try(Connection conn = ConnectionManager.getConnection();){ 
     try(PreparedStatement stmt = conn.prepareStatement("UPDATE Account SET (naam, voornaam,login,paswoord,emailadres) values(?,?,?,?,?) WHERE naam = " + teWijzigenAccount.getNaam() +";");){ 
      stmt.setString(1, teWijzigenAccount.getNaam()); 
      stmt.setString(2, teWijzigenAccount.getVoornaam()); 
      stmt.setString(3, teWijzigenAccount.getLogin()); 
      stmt.setString(4, teWijzigenAccount.getPaswoord()); 
      stmt.setString(5, teWijzigenAccount.getEmailadres()); 
      stmt.execute(); 
     } catch (SQLException ex) { 
      throw new DBException("SQLException opgetreden in statement: " +ex.getMessage()); 
     } 
    } catch (SQLException ex){ 
     throw new DBException("SQLException opgetreden in connectie " + ex.getMessage()); 
    } 
} 

私はこれに新しいので、休憩を与え、私はステップバイステップで学習しています。

これは、MySQLデータベース、すでに助けを enter image description here

感謝の画像です。

+0

http://dev.mysql.com/doc/refman/5.7/en/update.htmlの「UPDATE」の構文を読んでください。あなたの使用はそれに合っていますか? – Barmar

+0

SETのcol1 = val1、col2 = val2、...です。 'SET(col1、col2、...)VALUES(val1、val2、...)'はありません。あなたは 'UPDATE'と' INSERT'を混同しています。 – Barmar

+0

なぜ 'naam'を' WHERE'節でマッチングしているのと同じ値に設定していますか?それは何も変わらない。 – Barmar

答えて

2

INSERTの構文は、UPDATEではありません。この方法を試してください

UPDATE Account SET naam = ?, 
        voornaam = ?, 
        login = ?, 
        paswoord = ?, 
        emailadres = ? 
WHERE naam = " + teWijzigenAccount.getNaam() 
+0

彼は自分のクエリをパラメータ化しました。彼は 'WHERE'節のために追加のパラメータを追加するだけです。 – Barmar

+0

@Barmar - ああ、本当に..すみません、DBの人はクエリがそれが文字列を連結しているように見えるのです –

0

私は更新クエリの名前の周りに行方不明だと思います。

UPDATE Account 
SET (
     naam 
     ,voornaam 
     ,LOGIN 
     ,paswoord 
     ,emailadres 
     ) 
VALUES (
    ? 
    ,? 
    ,? 
    ,? 
    ,? 
    ) 
WHERE naam = '" + teWijzigenAccount.getNaam() +"';"); 
関連する問題