在使用mybatis的模糊查询时,有俩个特殊符号需要注意:
%:相当于任意多个字符;
_:相当于任意的单个字符;
第一步: 根据需求可以选择甄别,如果有要求排除特殊符号,那么写法如下:
在控制层接收到对应值得地方,加入replaceAll():
if(param != null){ map.put("param", param.replaceAll("%", "/%").replaceAll("_", "/_")); }
第二步: 这里给特殊符号进行替换;然后其他地方不做处理,直到mapper。xml的sql语句这里:
在对应的字段后面加入 ESCAPE '/'
<if test="param != null and param!= ''"> AND sp.param like '%'||#{param}||'%' ESCAPE '/' </if>
以上,排除特殊符号的模糊查询完成。