mybatis特殊字符处理

在mybatis 的mapper.xml文件中特殊字符处理方式  仅供参考

出处:http://yaobenzhang.blog.163.com/blog/static/214395113201561523017861/

1,CDATA区:

它的全称为character data,以"<![CDATA[ "开始,以" ]]>" 结束,在两者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序处理。

 

2,特殊字符 :

xml 中表示:   <= 小于等于、    >= 大于等于 需加  这样的标记:     <![CDATA[   ]]>      xml中有&的符号,需要<![CDATA[&]]>这样表示&

<= 小于等于 :<![CDATA[   <=  ]]>

>= 大于等于:<![CDATA[  >=  ]]>

 

3,一些特殊字符也可用下面的替代符号所代替。

 特殊字符   替代符号

     &            &amp;

     <            &lt;

     >            &gt;

     "             &quot;

     '              &apos;

 

查询时,需要获取某一时间区间内的数据:

<if test="startTime!=null">
    and t.createTime>#{startTime}
</if>
<if test="endTime!=null">
    and t.createTime<#{endTime}
</if>

但是在mybatis的xml文件中小于号是一个开始标签,这时候小于号会被识别为特殊字符。

解决方案:

使用CDATA包括起来,就能避免特殊字符了。这方法适用所有的特殊字符。

<![CDATA[ 
    
]]>

使用的案例:

<if test="startTime != null" > 
  <![CDATA[ 
    and t.createTime > #{startTime} 
  ]]>
</if> 
<if test="endTime != null" > 
  <![CDATA[ 
  and t.createTime < #{endTime} 
  ]]>
</if> 

 

posted @ 2018-06-08 15:11  liuwd  阅读(8006)  评论(0编辑  收藏  举报