<![CDATA[ ]]>作用
<![CDATA[ ]]> 在mybatis、ibatis等书写SQL的xml中比较常见,是一种XML语法,他的作用是 可以忽略xml的转义(在该标签中的语句和字符原本是什么样的,在拼接成SQL后还是什么样的)
使用:
select * from user
where isDeleted = 0
<if test=" age != 0 ">
<![CDATA[ and age < 18 ]]>
</if>
如上SQL :遇到 < 特殊字符需要转义为 <,因为有的特殊字符xml不识别,会直接报异常,因此会使用到 <![CDATA[ ]]> ,由它包裹的SQL和特殊字符将忽略转义,最后拼接为SQL语句select * from user where isDeleted = 0 and age < 18
注意:
1.使用动态SQL时要像if、foreach、where等标签一但被 <![CDATA[ ]]>标签包裹,将忽略xml的解析并出错
2.<![CDATA[ ]]>标签中不可嵌套<![CDATA[ ]]>标签
3.<![CDATA[ ]]>尽量缩小范围,以免出错