1.判断Double类型:<if test="probability != null">probability = #{probability},</if>,在实体类中probability字段是Double类型;
2.判断Integer类型:<if test="faceValue != null">face_value = #{faceValue}, </if>,在实体类中faceValue字段是Integer类型;
3.判断String类型:<if test="couponName != null and couponName != ''">coupon_name = #{couponName}, </if>,在实体类中couponName是String类型;
4.判断Date类型:<if test="beginTime != null">begin_time = #{beginTime}, </if>,在实体类中beginTime字段是Date类型;
因为String类型是符合的,但是如果是Integer类型的话,如果变量的值是0,即 faceValue = 0, mybatis在进行 faceValue != '' 的时候会认为 faceValue 的值是空字符串, 即 faceValue == '' 为true;
同理,Double,Date也是如此。所以如果是Integer类型,Double类型,Date类型只需要判断 != null 即可。如果String类型需要判断不等于0,则需要写name != '0'.toString(),否则会报错。