Mybatis的XML文件中<if>标签内的判断语句equals的坑
Mybatis中执行SQL语句:
假如代码中 String name = “B”;
在Mybatis的XML文件中有如下判断:
<if test=" name != null and name.equals('B')">
-- 返回false
<if test=' name != null and name.equals("B")'>
-- 返回true<if test=" name != null and name.equals('B'.toString())">
-- 返回true
可能是因为OGNL对单字符的识别 当成了char类型 ,而我们代码中是String类型,所以判断成了false。
所以在Mybatis的XML文件中判断字符串是否相等,建议使用 test=' name != null and name.equals("B")'
即单引号内包双引号的方式。