在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,一些特殊字符也可用下面的替代符号所代替。
特殊字符 替代符号
& &
< <
> >
" "
' '
查询时,需要获取某一时间区间内的数据:
<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>