1. 程式人生 > >Mybatis特殊字元轉義

Mybatis特殊字元轉義

<![CDATA[ ]]>
XML檔案會在解析XML時將5種特殊字元進行轉義,分別是&, <, >, “, ‘, 我們不希望語法被轉義,就需要進行特別處理。
有兩種解決方法:其一,使用<![CDATA[ ]]>標籤來包含字元。其二,使用XML轉義序列來表示這些字元。
SELECT id,newTitle, newsDay FROM newsTable WHERE 1=1 AND newsday <![CDATA[>=]]> #{startTime} AND newsday <![CDATA[<= ]]>#{endTime} ]]>
1
2
3
4
5
6

在CDATA內部的所有內容都會被解析器忽略,保持原貌。所以在Mybatis配置檔案中,要儘量縮小 <![CDATA[ ]]>
的作用範圍,來避免<if test=""> </if> <where> </where> 等sql標籤無法解析的問題。

使用XML轉義序列 5種特殊字元的轉義序列

特殊字元     轉義序列
<           &lt;
>           &gt;
&           &amp;
"           &quot;
'           &apos;

1
2
3
4
5
6

上述sql也可以寫成如下:

SELECT id,newTitle, newsDay FROM newsTable WHERE 1=1 AND newsday > #{startTime} AND newsday > #{endTime}
1
2
3
4
5

推薦使用<![CDATA[ ]]>,清晰,簡潔