天天看點

mybatis中<![CDATA[]]>的作用

此篇文章引自QH_JAVA的文章

 在使用mybatis 時我們sql是寫在xml 映射檔案中,如果寫的sql中有一些特殊的字元的話,在解析xml檔案的時候會被轉義,但我們不希望他被轉義,是以我們要使用<![CDATA[ ]]>來解決。

<![CDATA[   ]]> 是什麼,這是XML文法。在CDATA内部的所有内容都會被解析器忽略。

如果文本包含了很多的"<"字元 <=和"&"字元——就象程式代碼一樣,那麼最好把他們都放到CDATA部件中。

但是有個問題那就是 <if test="">   </if>   <where>   </where>  <choose>  </choose>  <trim>  </trim> 等這些标簽都不會被解析,是以我們隻把有特殊字元的語句放在 <![CDATA[   ]]>  盡量縮小 <![CDATA[  ]]> 的範圍。

執行個體如下:

<select id="allUserInfo" parameterType="java.util.HashMap" resultMap="userInfo1">

<![CDATA[

SELECT newsEdit,newsId, newstitle FROM shoppingGuide WHERE 1=1 AND newsday > #{startTime} AND newsday <= #{endTime}

]]>

<if test="etidName!=''">

AND newsEdit=#{etidName}

</if>

</select>

因為這裡有 ">"  "<=" 特殊字元是以要使用 <![CDATA[   ]]> 來注釋,但是有<if> 标簽,是以把<if>等 放外面

---------------------

作者:QH_JAVA

來源:CSDN

原文:https://blog.csdn.net/qh_java/article/details/50755655?utm_source=copy