mybatis 中,对于 byte 类型的比较
mybatis 中,对于 byte 类型的比较 。只需要 test != null 就行。
在 mybatis 中对 if 做条件判断的时候,经常用的是 " test != null && teat != ' ' " ,但是对于 byte 类而言,只需要 test != null 就行。
刚开始被不知道,然后在坑里呆了半天。。所以在这里,打算对这个坑进行一下了解,以免以后入坑。
mybatis中if条件判断,其中numberType是数字类型(int,long,double,float,Integer…)等其中一种(,如果对其进行了非空字符判断,且这个时候数字类型的值为0,那么下面第一个if是不会进入执行的。
<where>
<if test="numberType!= null and numberType!=''">
AND NUMBER_TYPE = #{numberType}
</if>
<if test=" businessEndTime != '' and businessEndTime != null">
<![CDATA[AND BUSINESS_TIME <= TO_DATE(#{businessEndTime},'yyyy-mm-dd hh24:MI:SS')]]>
</if>
</where>
数字类型的进行非空字符判断本身就不合理,产生这种不合理情景也可以理解。0是被作为false的,所以也不会进条件,而且涉及到业务类型的判断的不要放在sql中,在java中判断,否则不好维护。
参考:
https://blog.csdn.net/lich1n/article/details/73511180