2015-11-08 68 views
0

我需要编写一个查询来更新数据库中的一行。但例外的是SQL异常。更新jdbc中的行

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:ERREUR德syntaxe PR小号去“设置电子邮件= '11111',SET phoneNumber的= '111111' WHERE name = '萨巴',姓='M'? la ligne 1。

是什么问题?

public static void updateUser(User user, Connection connection) throws SQLException { 
PreparedStatement ps = null; 
ps = connection.prepareStatement("UPDATE USERS SET login = ?, SET eMail = ?, SET phoneNumber = ? WHERE name = ?, surname= ?"); 
     ps.setString(1, user.getLogin()); 
     ps.setString(2, user.geteMail()); 
     ps.setString(3, user.getPhoneNumber()); 
     ps.setString(4, user.getName()); 
     ps.setString(5, user.getSurname()); 
     ps.executeUpdate(); 

回答

1

UPDATE声明只有一个SET子句。你重复了SET关键字,这是错误的。此外,您忘记了AND关键字来组合谓词。写这个代替:

try (PreparedStatement ps = connection.prepareStatement(
     "UPDATE USERS " 
    + "SET login = ?, eMail = ?, phoneNumber = ? " 
    + "WHERE name = ? AND surname = ?")) { 

    // ... 
} 
+0

所以它的工作。谢谢。 – Dmitry88