如何在预处理语句java中使用特殊字符

时间:2013-02-21 13:31:43

标签: java mysql prepared-statement

我不是那么频繁的喜欢子句的用户,但现在我有要求我想要根据它的名字获取一些文件。  我试过

"SELECT *  FROM FILES WHERE FILENAME LIKE "+"%"+"?"+"%";

接下来我试图逃避角色

 "SELECT *  FROM FILES WHERE FILENAME LIKE "+"\\%"+"?"+"\\%";

我创建预准备语句并执行其给出错误的方式,

请帮助我如何使用%?

提前致谢

2 个答案:

答案 0 :(得分:5)

这样做:

"SELECT *  FROM FILES WHERE FILENAME LIKE ?";

然后将参数传递给

"%.jpg"

或者使用你想要的任何通配符。

E.g。

PreparedStatement st = connection.prepareStatement("SELECT *  FROM FILES WHERE FILENAME LIKE ?");
st.setString(1, "%.jpg");
ResultSet rs = st.executeQuery();

答案 1 :(得分:0)

我同意整流罩的答案,但我认为您还需要在搜索字符串后面根据您的初始帖子设置百分号。

所以,比如:

"%myfilename%"