一开始使占位符形式: String sql="select * from table where 字段 like '%?%' "; SQLQuery sqlQuery=session.createSQLQuery(sql); sqlQuery.setString(0, vlaue);//value是字符串对应第一个?位置插入字段 结果直接GG执行不了,网上说是 '%?%' 的问题,因为存在"需要对字符串拼接然后.. 第二种形式:(被坑了这是oracle的方式mysql没有||这个玩意。。。。) String sql="select * from table where 字段 like '%'||?||'%' "; 执行结果不报错但是得到的数据不对,他将我所有的表的数据全取出来了也就是后 面的限制条件完全没用 第三种形式: String sql="select * from table where 字段 like CONCAT('%',?,'%') "; 这样就可以了