我试图运行preparedStatement ps以检查数据库中是否存在数据。然后它将运行更新(如果存在)或插入(如果不存在)。但是,我收到语法错误java.sql.SQLSyntaxErrorException:你的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“order WHERE date = '2019-05-22'”附近使用的正确语法我无法发现错误在哪里。任何人都可以帮忙吗?PreparedStatement ps,ps1; ps =con.prepareStatement("Select 1 from order WHERE date = ?"); ps.setString(1, date); ResultSet rsOrder=ps.executeQuery(); if(rsOrder.next()) { System.out.println("reOrder: true"); ps1 = con.prepareStatement("UPDATE order SET result = ? WHERE date = ?"); ps1.setString(1, json); ps1.setString(2, date); int rs=ps1.executeUpdate(); }else { System.out.println("reOrder: false"); ps1 = con.prepareStatement("INSERT INTO order (date,result) VALUES (?,?)"); ps1.setString(1, date); ps1.setString(2, json); int rs=ps1.executeUpdate(); }
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
order是MySQL中的保留字。所以它不会允许,没有转义保留字。
您可以通过在关键字周围添加 ` 来转义它:
Select 1 from `order` WHERE date = ?
UPDATE `order` SET result = ? WHERE date = ?
INSERT INTO `order` (date, result) VALUES (?, ?)
添加回答
举报
0/150
提交
取消