mybatis参数问题, 列表查询按照状态进行过滤, 其中已处理状态值是1, 未处理是0. 参数接受为 Integer 时:
Mapper里面是和平常一样的写法 :
<if test="null != param.isDeal and '' != param.isDeal">
and is_deal = #{param.isDeal}
</if>
发先现参数为1时过滤正常,参数为0时无法正常过滤.
mybatis的Integer类型参数如果有为0的可能,在if标签判断中还应该单独加入判断,否则参数0会当成空字符串处理
第一种方法:
mapper里改写为这种写法:
<if test="null != param.isDeal and '' != param.isDeal or param.isDeal == 0 ">
and is_deal = #{param.isDeal}
</if>
第二种方法
isDeal参数接收,由原来的Integer类型修改为String. mapper 就不用修改就能生效.
就可以了!!!
网友评论