一般情况下我们使用.xml方式写条件判断时,系统生成的是
<if test = "fuzzy != null and fuzzy != '' ">
但在对单个字符串进行比较的时候,用法有所不同,有以下两种方式可以实现:
- 使用单引号包裹
<if test = 'fuzzy == "a" '>
- 使用字符串转换
<if test = "fuzzy == 'a'.toString()">
究其原因,Mybatis是用OGNL表达式来解析的,在OGNL的表达式中,单个字符串如:’x’会被解析成字符,导致字符类型和字符串类型不等,所以 if 标签中的 SQL 语句不会被解析。