Mybatis对于数值型千万不要做空判断,否者会导致参数0出现想像不到得问题:比如参数为0无法筛选

in java with 0 comment

问题描述
Mybatis查询时,使用if条件判断数值类型,当参数为0时,当if条件含有flag!=''时,无法筛选出数据。
比如:

		<if test="flag != null and flag != '' ">
			AND STATUS_FLAG = #{flag,jdbcType=BIT}
		</if>

问题原因
问题原因就是当flag 的值为0的时候,因为if条件含有flag!=''时,会导致判断是为false的,Mybatis是认定0为''的,所以为false。
解决办法
其实flag!=''对于数值型判断完全没有必要,去掉就好了,数值做空判断也是多余。
注意

X O