方案一、使用转义字符
特殊字符 | 转义字符 |
---|---|
< | < |
> | > |
& | & |
" | " |
’ | ' |
<= | <= |
>= | >= |
<if test="startTime != null">
AND time >= #{startTime}
</if>
方案二、使用xml的![CDATA[ ]]
语法
<![CDATA[ ]]>
是xml语法,在<![CDATA[ ]]>
内部的所有内容都会被解析器忽略,不进行转义。所以在xml中这是一种通用方案。
特殊字符 | <![CDATA[ ]]> |
---|---|
< | <![CDATA[<]]> |
> | <![CDATA[>]]> |
& | <![CDATA[&]]> |
" | <![CDATA["]]> |
’ | <![CDATA[']]> |
<= | <![CDATA[<=]]> |
>= | <![CDATA[>=]]> |
!= | <![CDATA[!=]]> |
注意事项
不能直接把 Mybatis 中的逻辑判断全部包住,因为还有标签有使用特殊字符<>,所以尽可能缩小范围,写在条件中
<if test="startTime != null">
AND <![CDATA[ time >= #{startTime}]]>
</if>