尝试生成预准备语句时出现SQL异常

时间:2009-01-20 11:33:35

标签: java sql

我正在尝试将以下String传递给PreparedStatement

private static final String QUICK_SEARCH = "select * from c where NAME like '% ? %'";

但是,我得到一个缺少绑定变量的SQL异常。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您不能将绑定变量放在类似的字符串中。

您需要使用:

SELECT * FROM c WHERE name LIKE CONCAT('%', ?, '%')

或类似的,具体取决于您的SQL版本支持的功能。

答案 1 :(得分:1)

你不能使用字符串连接里面的参数吗?

答案 2 :(得分:1)

凉爽,

我在设置preparestatement时设置了%符号;

pstmt.setString(1, "%" + name + "%");