与LIKE一起使用Java准备的语句

时间:2019-03-04 16:52:55

标签: java mysql prepared-statement sql-like

我想使用带有LIKE关键字的Java准备语句。 我正在尝试匹配日期字符串。 这是我的代码。

String summaryChooser = "SELECT * FROM PRODUCT p, CODE_COVERAGE_SUMMARY s WHERE "
                    + " p.product_id = s.product_id AND p.product_id = ? AND s.date LIKE ? "
                    + " ORDER BY s.date DESC LIMIT 1 ";
ps = dbConnection.prepareStatement(summaryChooser);
ps.setInt(1, productsResult.getInt("product_id"));
ps.setString(2,  "%" + date + "%");

它给出以下异常。

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:   您的SQL语法有误;   检查与您的MySQL服务器版本相对应的手册,以获取在'?附近使用的正确语法。 AND s.date喜欢吗?第1行的s.date DESC LIMIT 1'ORDER BY

2 个答案:

答案 0 :(得分:-1)

我可以做到这一点。

ps.setString(2, date + "%");

谢谢大家:)

答案 1 :(得分:-5)

替换:

ps.setString(2,  "%" + date + "%");

具有:

ps.setString(2,  "'" + date + "'");