Preparestatement 模糊查询为什么会这样?

a107494639 2011-04-14 03:07:29
我要做的是模糊查询,用preparestatement预处理sql语句。发现两个百分号就可以查到数据,一个百分号就查不到数据。求解!代码如下

public class Test {

public static void main(String[] args) throws Exception{
JdbcUtil util=new JdbcUtil();
Connection conn = null;
PreparedStatement ps =null;
ResultSet rs=null;
String name="生活";
String sql="select * from devSortInfo where sortName like ?";

conn=util.getConnection();
ps=conn.prepareStatement(sql);

// ps.setString(1, "%"+name+"%");
ps.setString(1, "%"+name);
rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString("sortName"));
}
}

}



这两句
// ps.setString(1, "%"+name+"%");
ps.setString(1, "%"+name);
当用第一句话是可以打印出结果:"生活类";
可是使用第二句话就打印不出结果
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hly_886 2011-04-14
  • 打赏
  • 举报
回复
"%"+name 是从后往前匹配,name+"%" 是从前往后匹配
a107494639 2011-04-14
  • 打赏
  • 举报
回复
哎呀,真是太粗心了,刚去个WC,路上突然想到原来是这样
这样就可以了
ps.setString(1, name+"%");
q943642385 2011-04-14
  • 打赏
  • 举报
回复
不用加% 吧
  • 打赏
  • 举报
回复
说明你传入的name是生活,ps.setString(1, "%"+name);这不到匹配滴。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧