问题
我们在使用Mybatis,书写sql的时候 ,是写到xml文件中。那么如果我们得sql中包含了特殊字符(< 、<=、&)的话 ,程序解析时会自动转义,那就会报错了:Tag name expected 。
![在这里插入图片描述](https://img-blog.csdnimg.cn/31833f0eef2646efbfb8066e18e6b0d6.png)
解决办法
办法一:使用转义字符
符号 | 转义字符 | 说明 |
---|
< | < | 需转义 |
& | & | 需转义 |
> | > | 不需转义 |
” | " | 不需转义 |
’ | ' | 不需转义 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/230afadf46cc41c4bf23c9921d301a98.png)
办法二:使用<![CDATA[]]>
这个不是mybatis层面的处理,而是xml层面的处理,加上<![CDATA[]]>之后,在其里面的所有内容将不会被解析,回原样的被mybatis拼接到SQL中。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cd9f51e4dd04175ba24e84cf59af746.png)