Mybatis查询tinyint(1)字段数据时,如果返回值为Map类型,那么tinyint(1)的数据默认会转化为boolean类型数据.
1、 在返回值为Map类型(即resultType="Map"
)时,数据表里的tinyint(1)
类型的数据(即[1, 0]
),被mybatis会自动把转换成boolean类型数据(即[true/false]
)
2、MySQL字段定义为tinyint(1)
时,MyBatis会把Integer = 0
当作空字符串来处理
<if test="status != null and status != ''">
AND status = #{status}
</if>
因此上面的if条件不成立,解决方案
<if test="status != null">
AND status = #{status}
</if>