<![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[ ]]>盡量縮小范圍,以免出錯
?