對於Netbeans項目,我需要使用JavaFX項目更新mySQL數據庫。 我可以添加一個帳戶,但我似乎不能編輯一個帳戶。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());
}
}
我是新來的,所以給我一個休息,我正在一步一步學習。
感謝。
在http://dev.mysql.com/doc/refman/5.7/en/update.html閱讀'UPDATE'的語法。你的使用是否符合? – Barmar
它是'SET col1 = val1,col2 = val2,...'。沒有'SET(col1,col2,...)VALUES(val1,val2,...)'。你將'UPDATE'與'INSERT'混淆了。 – Barmar
爲什麼你將'naam'設置爲與你在WHERE條款中匹配的值相同?這並沒有改變任何東西。 – Barmar