在mybatis 的mapper.xml文件中特殊字符處理方式 僅供參考
出處:http://yaobenzhang.blog.163.com/blog/static/214395113201561523017861/
1,CDATA區:
它的全稱為character data,以"<![CDATA[ "開始,以" ]]>" 結束,在兩者之間嵌入不想被解析程序解析的原始數據,解析器不對CDATA區中的內容進行解析,而是將這些數據原封不動地交給下游程序處理。
2,特殊字符 :
xml 中表示: <= 小於等於、 >= 大於等於 需加 這樣的標記: <![CDATA[ ]]> xml中有&的符號,需要<![CDATA[&]]>這樣表示&
<= 小於等於 :<![CDATA[ <= ]]>
>= 大於等於:<![CDATA[ >= ]]>
3,一些特殊字符也可用下面的替代符號所代替。
特殊字符 替代符號
& &
< <
> >
" "
' '
查詢時,需要獲取某一時間區間內的數據:
<if test="startTime!=null"> and t.createTime>#{startTime} </if> <if test="endTime!=null"> and t.createTime<#{endTime} </if>
但是在mybatis的xml文件中小於號是一個開始標簽,這時候小於號會被識別為特殊字符。
解決方案:
使用CDATA包括起來,就能避免特殊字符了。這方法適用所有的特殊字符。
<![CDATA[ ]]>
使用的案例:
<if test="startTime != null" > <![CDATA[ and t.createTime > #{startTime} ]]> </if> <if test="endTime != null" > <![CDATA[ and t.createTime < #{endTime} ]]> </if>