SQL更新 - 收到错误

时间:2016-10-20 00:18:30

标签: mysql sql netbeans javafx

对于Netbeans项目,我需要使用JavaFX项目更新mySQL数据库。 我可以添加一个帐户,但我似乎无法编辑一个。

这是一个错误的方法,但我看不出我做错了什么。 也许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

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

INSERT的语法不是UPDATE的语法。试试这种方式

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

答案 1 :(得分:0)

我认为您在更新查询中的名称周围缺失了。

UPDATE Account
SET (
        naam
        ,voornaam
        ,LOGIN
        ,paswoord
        ,emailadres
        )
VALUES (
    ?
    ,?
    ,?
    ,?
    ,?
    )
WHERE naam = '" + teWijzigenAccount.getNaam() +"';");
相关问题