关于mybatis- SQL 语句中出现 < 的解决方案
'<' 符号和 '<=' 符号不能直接在映射文件中使用。
-
解决方法一
字符转义
以上这张表就是 MyBatis 映射文件特殊字符转义表,'<' 符号在 XML 映射文件中其实是特殊字符,因为它和映射文件中的标记符号 ’< / >' 无法区别,所以需要用转义字符把它替换掉。
那么,'<' 问题解决办法如下:
select * from tb_user where name = #{name} and age < #{user.age};
执行测试,正确显示结果,问题搞定。
-
解决方法二
使用
在使用 mybatis 时我们 SQL 语句是写在 XML 映射文件中,如果 SQL 语句中有一些特殊的字符的话,在解析 XML 文件的时候会被转义,但我们不希望它被转义,所以我们可以使用来解决。
是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略,只简单当做字符串处理。那么,'<' 问题解决办法如下:
select * from tb_user where name = #{name} and age <![CDATA[ < ]]> #{user.age};
执行测试,OK