Mybatis Integer类型,如果传入的值为0 被mapper解析为空字符串

哇,又哭啦,血泪史啊,为什么我能完好无误的跳进任何一个坑,然后吭叽吭叽半天找不到原因哭唧唧哇~~~!!!!
先来bug代码
impl层

List<BgChapterVO> listChapterVO=new ArrayList<>();
        Map map=new HashMap<>();
        map.put("chapterId", chapter.getChapterId());
        map.put("chapterStatus", chapter.getChapterStatus());
        map.put("auditStatus", chapter.getAuditStatus());
        PageHelper.startPage(chapter.getPage(),chapter.getLimit());
        listChapterVO=courseVOMapper.selectChapter(map);

注意auditStatus这个磨人的小妖精 他是int类型,和前台妹妹约定的是0代表通过,然而自己写的mapper查到的结果是通过和不通过所有的信息,哇,我的天,找了一下午,(这里我承认我这个小白菜找bug 的能力很差)才发现,原来int类型的0会被mapper解析为这个东西: ’ ’ 一个空串。然鹅,我的mapper为了更完善的测试,自己写的盘空是下面介个样纸,导致准确无误的踩到了bug

<if test="auditStatus!=null and auditStatus!='' ">
                and tcourse.audit_status=#{auditStatus}
            </if>

。。。。。。so,吧后面的判断空串这个条件删了就好啦。如下。

<if test="auditStatus!=null ">
                and tcourse.audit_status=#{auditStatus}
            </if>

或者,如果状态少的话还可以这样

<if test="onlineStatus==0 or onlineStatus==1 ">
                and tcourse.online_status=#{onlineStatus}
            </if>

哇,这简单的bug找了一下午,,,学艺不精啊,,哭唧唧

自我检讨ing

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值