Bootstrap

mybatis 中的<![CDATA[ ]]>用法及说明

<![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 :遇到 < 特殊字符需要转义为 &lt;,因为有的特殊字符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[ ]]>尽量缩小范围,以免出错
 

;