和轉義字符的使用和聯繫

一、轉義方法介紹


第一種方法:

用了轉義字符把>和<替換掉,然後就沒有問題了。例如:

 

SELECT * FROM test WHERE 1 = 1 AND start_date  &lt; = CURRENT_DATE AND

 

end_date >= CURRENT_DATE


常用的轉義字符如下:

                     &lt;                

     <

小於號

       &gt;

                     >                  

                     大於號

          &amp;

 &

                     

           &apos;

  ’

                     單引號

           &quot;

                     "

                     雙引號

  第二種方法:


因爲這個是xml格式的,所以不允許出現類似“>”這樣的字符,但是都可以使用


<![CDATA[ ]]>符號進行說明,將此類符號不進行解析你的可以寫成這個:

 

mapper文件示例代碼


<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>  

二、兩種方式的說明:


在xml格式的文件中,對於“>”、“<”等符號是作爲特殊的符號使用的,所以當我們使用


這些符號的時候,往往不會正常的起作用,反而可能產生了語法錯誤。


而使用第一種方式需要注意以下幾個方面:
 
 
(1)轉義序列字符之間不能有空格; 


(2) 轉義序列必須以”;”結束; 


(3) 單獨出現的”&”不會被認爲是轉義的開始; 


(4) 區分大小寫。 
 
2.使用<![CDATA[ ]]>符號相對於使用轉義符方法來說是更加高效的。因爲,轉義前的字


符也好,轉義後的字符也好,都會被xml解析器解析,而使用<![CDATA[ ]]>符號來包含


不被轉義的內容,則是xml解析器能夠識別該符號爲忽略解析的內容。
 
另外,使用<![CDATA[ ]]>符號需要注意以下幾個方面:


(1) 此部分不能再包含”]]>”; 


(2) 不允許嵌套使用; 


(3)”]]>”這部分不能包含空格或者換行。
 

三、比較


  最後,說說<![CDATA[]]>和xml轉移字符的關係,它們兩個看起來是不是感覺功能


重複了? 


  是的,它們的功能就是一樣的,只是應用場景和需求有些不同:

 
(1)<![CDATA[]]>不能適用所有情況,轉義字符可以; 


(2) 對於短字符串<![CDATA[]]>寫起來囉嗦,對於長字符串轉義字符寫起來可讀性差;

 
(3) <![CDATA[]]>表示xml解析器忽略解析,所以更快。



注:對於有人說在mybatis的映射文件中,最好使用第二種方法,我還沒有找到相關依


據。如果,各位大神有什麼答案,或者什麼建議,還請不吝賜教。



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