mybatis模糊查询去除特殊符号%(百分号)和_(下划线)

在使用mybatis的模糊查询时,有俩个特殊符号需要注意:

%:相当于任意多个字符;

_:相当于任意的单个字符;

根据需求可以选择甄别,如果有要求排除特殊符号,那么写法如下:

在控制层接收到对应值得地方,加入replaceAll()

if(param != null){
        	map.put("param", param.replaceAll("%", "/%").replaceAll("_", "/_"));
    }

这里给特殊符号进行替换;然后其他地方不做处理,直到mapper。xml的sql语句这里:

在对应的字段后面加入  ESCAPE '/'


		  	AND sp.param like '%'||#{param}||'%' ESCAPE '/'

以上,排除特殊符号的模糊查询完成。

写到这里,顺便记录一下mybatis中的特殊符号处理,及模糊查询的写法

xml特殊符号转义写法

    <          < 

    >          >  

    <>   <>

    &      & 

    '      '

    "      "

也可以使用符号进行说明,将此类符号不进行解析    写法:  

   模糊查询的三种常用写法:

 like concat('%',#{param},'%')  或者 like '%${param}%' ,还有就是我自己常用的上面那种  like '%'||#{param}||'%'

 

你可能感兴趣的:(java,笔记,mybatis)