MyBatis-xml文件标签详解

if 标签

字符相等的判断

假如Java代码中有字符串变量: String name = "B",在Mybatis的XML文件中有如下判断:

1
2
3
4
5
6
7
8
<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

原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’B’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以判断成了false。

因此,在Mybatis的XML文件中判断字符串是否相等,单个的字符要写到双引号里面或者使用.toString()才行!例如使用 test=' name != null and name.equals("B")' 即单引号内包双引号的方式。

------ 本文完 ------