Mybatis Integer类型,值为0被认为是空字符串的解决办法

╰半夏微凉° 2022-06-18 04:06 376阅读 0赞

mybatis写update时,正常是set了值才会进行update操作,我们一般是这样写。

  1. <if test="sampleBatchNo != null and sampleBatchNo != ''" >
  2. SAMPLE_BATCH_NO = #{sampleBatchNo,jdbcType=VARCHAR},
  3. </if>
  4. 1
  5. 2
  6. 3
  7. 1
  8. 2
  9. 3

如果不空null并且不是空字符串才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。

  1. int i = 0;
  2. i!=''
  3. mybatis中会返回true。也就是说,mybatisi==0的值也认定为空字符串。
  4. 1
  5. 2
  6. 3
  7. 1
  8. 2
  9. 3

正常来说,0不为空也不是空字符串。所以,针对这个问题,我的解决办法是:如果类型为Integer类型,我就去掉 != ”的判断,只判断!=null即可。

发表评论

表情:
评论列表 (有 0 条评论,376人围观)

还没有评论,来说两句吧...

相关阅读