我想下面String
传递给PreparedStatement
时:SQL异常试图让一个准备好的声明
private static final String QUICK_SEARCH = "select * from c where NAME like '% ? %'";
不过,我得到一个SQL异常绑定变量缺失。
有什么建议吗?
我想下面String
传递给PreparedStatement
时:SQL异常试图让一个准备好的声明
private static final String QUICK_SEARCH = "select * from c where NAME like '% ? %'";
不过,我得到一个SQL异常绑定变量缺失。
有什么建议吗?
不能使用字符串连接中的参数吗?
你不能把绑定变量放在这样的字符串中。
您需要使用:
SELECT * FROM c WHERE name LIKE CONCAT('%', ?, '%')
或相似的,这取决于哪些功能是由您的SQL版本的支持。
cool,
我刚刚在设置preparedstatement时设置了%符号;
pstmt.setString(1, "%" + name + "%");
我们可以看到您用于创建准备好的语句的实际代码吗? – SCdF 2009-01-20 11:37:45
[Java PreparedStatements中的通配符]的可能重复(http://stackoverflow.com/questions/327765/wildcards-in-java-preparedstatements) – outis 2012-04-27 19:49:26