MyBatis【付诸实践 01】mapper.xml 中特殊符号的 2 种处理方法(CDATA区+替代字符举例)

377 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. CDATA区

全称为 CHARACTER DATA,可以在两者之间嵌入不想被程序解析的数据,解析器会将这些数据原封不动地交给下游程序处理,举例如下:

& 且: <= 小于等于: >= 大于等于:= ]]>

2. 替代符号

在 XML 文件内使用替代符号,举例如下:

在这里插入图片描述

3. 使用举例

  • 原始SQL
createTime >= beginDate and createTime <= endDate
  • CDATA区使用
<if test="beginDate != null ">
      and createTime <![CDATA[ >= ]]> #{beginDate}
</if>

<if test="endDate != null ">
      and createTime <![CDATA[ <= ]]> #{endDate}
</if>

<if test="beginDate != null ">
      and  <![CDATA[ createTime >= #{beginDate} ]]> 
</if>

<if test="endDate != null ">
      and  <![CDATA[ createTime <=  #{endDate} ]]>
</if>
  • 替代符号使用
<if test="beginDate != null ">
      and createTime &gt;= #{beginDate}
</if>

<if test="endDate != null ">
      and createTime &lt;= #{endDate}
</if>