mybatis 中的<![CDATA[ ]]>标签用

2018-06-12  本文已影响8人  onlyHalfSoul

最近在看博客时,发现有人使用了<![CDATA[ ]]>这样一个标签包住Mapper中的sql语句,不清除是什么意思,后来查了一下,这个标签是直译sql的意思。

<![CDATA[ ]]>是xml语法,包含在其中的文本不会被xml语法解析,比如sql中的"<"和">",不会被解析为xml的尖括号,而是不转义的字符串。



<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已经基本克服了sql转义的问题,这个标签可以谨慎使用。

上一篇下一篇

猜你喜欢

热点阅读