ibatis中CDATA的使用

sqlmap里面经常会有 <![CDATA[****]]>出现,记录一下这么用的作用。


术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。

"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

CDATA 部分中的所有内容都会被解析器忽略。

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束


在sqlmap里面也是一样,如果sql语句有一些不希望被解析的字段,都可以用CDATA来定义。比如:

<select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">  
select id
from tableA a,
     tableB b
 <dynamic prepend="WHERE">
 <isNotNull prepend="AND" property="startDate">
  a.act_time >= #startDate# 
  <![CDATA[ and a.act_time <= #endDate#  ]]>
  and a.id = b.id 
 </isNotNull>    
 </dynamic>  
</select>


ibatis SQL常用查询语法:http://deony2jacob1314.iteye.com/blog/1477536


你可能感兴趣的:(ibatis中CDATA的使用)