MyBatis integer 0 判断为空

问题重现:

operateResult=0, 不进入条件, 导致sql更新时operateResult字段明明传值却未更新

operateResult=1, 却进入条件

mybatis写批量update时, 有这么个判断

<iftest="item.operateResult !=null and item.operateResult !=''">

         OPERATE_RESULT= #{item.operateResult},

</if>

正常情况下理解为, operateResult不为null不为空字符串才会进入.

但这种情况是针对字符串(String)类型,如果是Integer类型的话就会有问题


1. mybatis 默认认为Integer 类型字段等于0是 == ""

2.站在java角度上, Integer类型本来就不允许等于"",只允许为null

解决方法:

将and item. operateResult!=''"去掉, 只 判 断 item. operateResult!=null

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,571评论 0 4
  • 这是一首女子之恋之作。女主人公深深地爱着一位男子,而那位男子对她却始乱终弃,女主人公不胜哀怨。一说卫庄姜伤所遇不淑...
    易道yidao阅读 463评论 0 0
  • 终于等到你,却只是我以为 等你的人,一个青春也愿意 爱你的人,爱到卑微也无悔 爱情,经不起顺其自然 爱你的人不会让...
    雪_孩阅读 296评论 0 0
  • 2017年11月23日 晴 今天晚上本来挺开心的,女儿做完作业我检查,女儿跟爸爸在学习今天学的...
    一潼妈妈阅读 102评论 0 0
  • 明明都已经可以靠脸吃饭了,却偏偏要靠才华!这世界上最可怕的不是别人比你成功,而是比你成功的人比你还努力! 当许多英...
    零珑心阅读 1,182评论 0 1