非法的 XML 字符必须被替换为实体引用(entity reference)
假如您在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:
<message>if salary < 1000 then</message>
由于Mybatis的sql是写在配置文件里面,但解析xml时出现 >= 或 <= 时会认为 < 是一个标签的开始,导致sql报错。
解决方案有两种
1、加上CDATA
<isNotEmpty property="logNameEnd" prepend="AND">
<![CDATA[ u.log_name >= #logNameStart# AND u.log_name <= #logNameEnd# ]]>
</isNotEmpty>
意思就是在有 >=(包括其他比较符< >) 的该行需要加入<![CDATA[ ]]>
2、使用转义符号
在 XML 中有 5 个预定义的实体引用:
实体引用 | 符号 | 说明 |
---|---|---|
< |
< | 小于 |
> |
> | 大于 |
& |
& | 和号 |
' |
' | 省略号 |
" |
" | 引号 |
在书写时,将符号转为第一列的实体引用即可。
欢迎访问我的博客mybatis的xml中< >的写法