<if test="0==paraLC0000">
and YBH000 like #{paraQFLCMC}+'%'
</if>
上述判断:
1、params.put("paraLC0000", "0");成立
2、params.put("paraLC0000", 0);成立
3、params.put("paraLC0000", null);不成立
4、params.put("paraLC0000", "null");--报错 Cause: java.lang.NumberFormatException: For input string: "null"
<if test=" ''==paraLC0000 ">
and YBH000 like #{paraQFLCMC}+'%'
</if>
1、params.put("paraLC0000", 0);成立
2、params.put("paraLC0000", "0");不成立
3、params.put("paraLC0000", "");成立
<if test=" '0'==paraLC0000 ">
and YBH000 like #{paraQFLCMC}+'%'
</if>
1、params.put("paraLC0000", null);不成立
2、params.put("paraLC0000", 0);不成立 因为:mybatis把数值类型的0解析成立空串,‘0’显然不等于‘’
3、params.put("paraLC0000", "0");不成立 ;解决办法:test=" '0'.toString()==paraLC0000"
综上所述:
0比较时候,参数转为字符串“0”,然后xml中test=" '0'.toString()==paraLC0000"
mybatis中当参数为0时候的判断
最新推荐文章于 2024-07-02 05:09:41 发布