读书人

java模糊查询解决方法

发布时间: 2012-02-12 17:16:33 作者: rapoo

java模糊查询
String sql = "select con from table_name where con like '%?% ' "; // ?号是占位符
PreparedStatement prepare = conn.prepareStatement(sql);
prepare.setString(1, "a ");
会报错: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid parameter binding(s).

当用 String con = "a ";
sql = "select con from table_name where con like '% "+ con + "% ' ";
prepare.executeQuery();
时,就不会报错了.
为什么在关键字 'like '后面用占位符的时候就会出错呢?

[解决办法]
String sql = "select con from table_name where con like ? "; // ?号是占位符
PreparedStatement prepare = conn.prepareStatement(sql);
prepare.setString(1, "%a% ");


that 's all!
[解决办法]
'%?% ',这样写?号只是字符串%?%中的一个字符,并不是占位符,没有了占位符prepare.setString(1, "a ")时就找不到对应的占位符了。

String sql = "select con from table_name where con like ? "; // ?号是占位符
PreparedStatement prepare = conn.prepareStatement(sql);
prepare.setString(1, "% "+con+ "% ");//con作为参数传进来

读书人网 >Java Web开发

热点推荐