mybatis中sql語句CDATA標(biāo)簽的用法說明
CDATA 指的是不應(yīng)由 XML 解析器進行解析的文本數(shù)據(jù)(Unparsed Character Data)。
在 XML 元素中,'<' 和 “&” 是非法的;
“<” 會產(chǎn)生錯誤,因為解析器會把該字符解釋為新元素的開始;
“&” 也會產(chǎn)生錯誤,因為解析器會把該字符解釋為字符實體的開始;
在mapper文件中寫sql語句時,遇到特殊字符時,如:'<' 等,建議使用 <![CDATA[ sql語句 ]]> 標(biāo)記,將sql語句包裹住,不被解析器解析;
例如:【偽代碼】select id from t_article where create_time <![CDATA[ <= ]]> now();使用CDATA[ ]標(biāo)簽進行范圍查詢
在項目中使用mybatis時的SQL語句是寫在xml映射文件中的,如果想要通過大于小于或者大于等于小于等于查詢符合范圍的數(shù)據(jù),但是若寫入的SQL語句有一些類似>,<的特殊字符的話,在解析xml文件的時候會被轉(zhuǎn)義,但這并不是我們所希望的,所以這個時候可以使用<![CDATA[]]>標(biāo)簽來解決。
<![CDATA[ ]]> 是什么,這是XML語法。在CDATA內(nèi)部的所有內(nèi)容都會被解析器忽略。
如果文本包含了很多的'<'字符 <=和'&'字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
實例:<select resultType='FleeceRecord'>SELECT * FROM `fleece_record`<where><if test='naturalLengthStart != null'>and natural_length<![CDATA[>=]]>#{naturalLengthStart} </if> <if test='naturalLengthEnd != null'>and natural_length<![CDATA[<=]]>#{naturalLengthEnd} </if> </where>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Access數(shù)據(jù)庫安全的幾個問題2. navicat for mysql導(dǎo)出sql文件的方法3. navicat for mysql導(dǎo)出數(shù)據(jù)庫的方法4. mybatis plus代碼生成工具的實現(xiàn)代碼5. 數(shù)據(jù)庫相關(guān)的幾個技能:ACCESS轉(zhuǎn)SQL6. 淺談Mysql連接數(shù)據(jù)庫時host和user的匹配規(guī)則7. SQL Server 2008新功能─傳遞表值參數(shù)8. SQL Server下7種“數(shù)據(jù)分頁”方案全網(wǎng)最新最全9. Windows下不能啟動mysql服務(wù)--錯誤總結(jié)10. Navicat Premium操作MySQL數(shù)據(jù)庫(執(zhí)行sql語句)
