1. 程式人生 > >Mybatis--<![CDATA[ sql 語句 ]]>

Mybatis--<![CDATA[ sql 語句 ]]>

tid sql 語句 start pre 內部 test rim log java

在mapper文件中寫sql語句時,遇到特殊字符時,如:< 等,建議使用<![CDATA[ sql 語句 ]]>標記,將sql語句包裹住,不被解析器解析

在使用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>等 放外面

Mybatis--<![CDATA[ sql 語句 ]]>