mybatis中进行条件判断字符串时这样写是不对的,虽然此写法不会直接引起异常但会造成无法判断从而忽略该条件表达式
<if test="userStatus!=null and userStatus!= 'XXX'">
需要将单双引号交换一下位置,正确写法如下:
<if test='userStatus!=null and userStatus!= "XXX"'>
或者
<if test="userStatus!=null and yanan != 'userStatus'.toString()">
因为mybatis映射文件,是使用的ognl表达式,ognl是java语言(强类型语言),会把‘X’解析成字符,而不是字符串。
因此,进行条件判断时也可使用java.lang.String的方法,如下:
<if test='userStatus.indexOf(",") != -1'>
--自己测试过(以下语句写法会造成这个判断条件根本不会加上)---重要
<if test="userStatus =='1'and userStatus == '2' ">
AND Status = #{userStatus}
</if>