在mybatis中进行标签判断的时候发现判断的那行SQL不会执行
<if test="con.isQys == '1' ">
and co1.IS_QYS = '1'
</if>
这里即使 con.isQys == ‘1’ 也不会执行,因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串变量是否是字符串的时候,mybatis会把’1’解析为字符,java又是强类型语言,所以不能这样写。
有三个解决方式:
- 使用toString() 进行转化;
<if test="con.isQys == '1'.toString() ">
and co1.IS_QYS = '1'
</if>
- 字符串用双引号,不是用单引号;
<if test='con.isQys == "1" '>
and co1.IS_QYS = '1'
</if>
- 把1换成一串字母,比如yes,目前还不知道为什么这样可行;
<if test="con.isQys == 'yes' ">
and co1.IS_QYS = '1'
</if>