Mybatis框架--Ibatis框架踩坑03, XML中CDATA標籤

 

關於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[]]>和轉義字符

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章