關於XML中 <![CDATA[ ]]> 標籤的具體介紹,請參見: W3School--- <![CDATA[ ] ]> 介紹
CDATA
術語 CDATA 指的是不應由 XML 解析器進行解析的文本數據(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 會產生錯誤,因爲解析器會把該字符解釋爲新元素的開始。
"&" 也會產生錯誤,因爲解析器會把該字符解釋爲字符實體的開始。
某些文本,比如 JavaScript 代碼,包含大量 "<" 或 "&" 字符。爲了避免錯誤,可以將腳本代碼定義爲 CDATA。
CDATA 部分中的所有內容都會被解析器忽略。
CDATA 部分由 "<![CDATA[" 開始,由 "]]>" 結束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
在我工作中,需要根據 flag=0 這個條件從Oracle數據庫中查詢100條數據, 則SQL語句如下:
SELECT *
FROM tab
WHERE tab=0
AND rownum < 101
其中,rownum 單詞是Oracle數據庫中的關鍵字,用來判斷行數。
在Mybatis/Ibatis框架中, SQL語句是編寫在XML中,由於 "<" 在程序加載解析XML文件時,會被轉義,則需要使用標籤 <![CDATA[ ]]> 進行處理,使其被解析器忽略。
上文的SQL語句在Mybatis/Ibatis框架中的寫法如下:
SELECT *
FROM tab
WHERE flag=0
AND rownum <![CDATA[ < ]]> 101
同樣,也可以使用 <![CDATA[ ]]> 標籤包裹全部的SQL語句,寫法如下:
<![CDATA[
SELECT *
FROM tab
WHERE flag=0
AND rownum < 101
]]>
網上其他參考文章:
1、mybatis中<![CDATA[]]>的作用
2、Mybatis 中的<![CDATA[ ]]>淺析
3、<![CDATA[]]>和轉義字符