今天要给一段sql加一个查询条件,加完自测发现了一段错误,错误如下:

看到这个错误的第一反应,是传的参数,是不是传了空值进去,调试的时候,发现并没有
后来仔细排查发现,是<![CDATA[]]把整段sql全部包在了其中,加的查询条件使用<isNotNull>之类的标签不起作用,编译启动不报错,但是执行的时候就会报错,后经查询网上资料得出结论(同样适用于mybatis):
1.使用动态SQL时要像if、foreach、where等标签一但被 <![CDATA[ ]]>标签包裹,将忽略xml的解析并出错
2.<![CDATA[ ]]>标签中不可嵌套<![CDATA[ ]]>标签
3.<![CDATA[ ]]>尽量缩小范围,以免出错