在MyBatis中使用<if></if>判断传入参数时通常会判断参数是否!=null和!='',但是当传入值为0的Integer类型时,MyBatis会将0当成'',会造成条件判断有误。所以可能去除!=''条件来避免条件误判。
<if test="deleted != null >
AND deleted= #{deleted,jdbcType=INTEGER}
</if>
而当Integer类型传入参数值可能为空字符串和0时,可以在判断条件上加上or ==0条件。
<if test="deleted != null and deleted !='' or deleted == 0" >
AND deleted= #{deleted,jdbcType=INTEGER}
</if>