mybatis编写sql传入条件值为0时无效
条件查询时入参为0无效
<select name="status" id="status" class="layui-input">
<option value="">全部</option>
<option value="0">申请中</option>
<option value="1">退款中</option>
<option value="2">退款成功</option>
<option value="3">已拒绝</option>
<option value="4">已取消</option>
</select>
选择条件为申请中时,传入后台条件为0,sql打印发现没有拼接该条件
经过查询得知
<if test="order.orderSn != null and order.orderSn != ''">
and r.order_num LIKE CONCAT('%',#{order.orderSn},'%')
</if>
<--下面的条件判断了空与空串,在mybatis中传入值为int时,判断空串时会将0值转换成null导致条件失效;
只需去掉空串判断-->
<if test="order.status != null and order.status != '' ">
and r.status = #{order.status}
</if>
编写的时候复制时将空串判断一并加上导致此问题,查证之后解决