使用JDBC问题更新MySQL表

时间:2013-06-12 02:28:07

标签: mysql jdbc sql-update

我有一个软件,其中数据被插入表中,除非数据存在,在这种情况下表格应该更新。
将数据插入表中根本不会产生任何问题。我使用以下代码:

PreparedStatement ps = this.con.prepareStatement("INSERT INTO tbl_banned(banned_player, banned_reason, banned_by, banned_from, banned_to) VALUES (?, ?, ?, ?, ?)");
ps.setString(1, player.getName());
ps.setString(2, reason);
ps.setString(3, by);
ps.setString(4, currentDateTime);
ps.setString(5, toDateTime);

ps.executeUpdate();

但是,当我尝试使用以下代码使用相同的信息更新同一个表时:

PreparedStatement ps = this.con.prepareStatement("UPDATE tbl_banned SET banned_reason=?, SET banned_by=?, SET banned_from=?, SET banned_to=? WHERE banned_player=?");
ps.setString(1, reason);
ps.setString(2, by);
ps.setString(3, currentDateTime);
ps.setString(4, toDateTime);
ps.setString(5, player.getName());

ps.executeUpdate();

我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET banned_by='User', SET banned_from='2013/06/12 04:10:45', SET banned_to='2' at line 1

我似乎无法弄清楚这个错误的原因是什么,过去一小时我一直在努力。如果有人能够对这个问题有所了解,那将非常感激。

1 个答案:

答案 0 :(得分:1)

无需连续设置多个时间。它应该是:

PreparedStatement ps = this.con.prepareStatement("UPDATE tbl_banned SET banned_reason=?,  banned_by=?, banned_from=?, banned_to=? WHERE banned_player=?");

here 是您在mysql中使用UPDATE命令的指导