1. 程式人生 > >mybatis模糊查詢去除特殊符號%(百分號)和_(下劃線)

mybatis模糊查詢去除特殊符號%(百分號)和_(下劃線)

在使用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特殊符號轉義寫法

    &lt;          < 

    &gt;          >  

    &lt;&gt;   <>

    &amp;      & 

    &apos;      '

    &quot;      "

也可以使用<![CDATA[ ]]>符號進行說明,將此類符號不進行解析    寫法: <![CDATA[ 這裡寫你的sql ]]>  

   模糊查詢的三種常用寫法:

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