首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java模糊查询解决方法

2012-02-12 
java模糊查询Stringsqlselectconfromtable_namewhereconlike%?%//?号是占位符PreparedStatementprepar

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作为参数传进来

热点排行