Mybatis 接收Integer类型,传入0被认为是空字符串的

2019-04-17  本文已影响0人  平面小狮子

正常情况下,我们接收到传入的值才会做进一步的条件筛选,如下:

<if test="publishStatus != null and publishStatus != ''">

    and tp.publish_status = #{publishStatus,jdbcType = VARCHAR}

</if>

接收到的值不为null并且不为空字符串,才进一步拼接sql,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题,mybatis将ingeter类型为0的值也认定为空字符串,就造成了拼接sql的语句未执行。

处理方法: 如果类型为Integer类型,我就去掉 != ”的判断,只判断!=null即可。

上一篇下一篇

猜你喜欢

热点阅读