mybatis模糊查詢去除特殊符號%(百分號)和_(下劃線)
阿新 • • 發佈:2019-01-09
在使用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>
以上,排除特殊符號的模糊查詢完成。
寫到這裡,順便記錄一下mybatis中的特殊符號處理,及模糊查詢的寫法
xml特殊符號轉義寫法
< <
> >
<> <>
& &
' '
" "
也可以使用<![CDATA[ ]]>符號進行說明,將此類符號不進行解析 寫法: <![CDATA[ 這裡寫你的sql ]]>
模糊查詢的三種常用寫法:
like concat('%',#{param},'%') 或者 like '%${param}%' ,還有就是我自己常用的上面那種 like '%'||#{param}||'%'