mybatis的test条件中为什么0和空值是等价

工作中遇到的坑,随时补充。欢迎留言

一、mybatis 非空判断数字0为什么是false

<if test="id !=null and id !='' ">
      and fr.id = #{id}
</if>

如上截取的mybatis的代码片段,当id的值为数字0时,test的判断结果是false。以上写法对id为String类型的变量没有问题。
<if test=" 0 !=null ">的判断结果是true, <if test=" 0 !='' ">的判断结果是false。
在mybatis的源码中0和 '' 都会被转成double类型的0.0,
所以<if test=" 0 =='' "> 等价于 <if test=" 0.0 ==0.0 ">
因此判断结果是true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值