对于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());
}
}
我是新手,所以给我一个休息时间,我正在逐步学习。
非常感谢您的帮助。
答案 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() +"';");