用mybatis更新数据,当数据为0时,无法更新

在bean中,count是long类型:

private Long count;

需求就是利用下面的更新语句更新bills表中的count和amout

<update id="updateBills" parameterType="map" >
  UPDATE bills 
  <set>
  <if test="count != null and count != ''">
     count = #{count,jdbcType=NUMERIC},
  </if>
  <if test="amount != null and amount != ''">
     amount = #{amount,jdbcType=NUMERIC},
  </if>
            update_time = now() 
</set> 
    where id = #{id,jdbcType=VARCHAR} 
    and 
    bill_date = to_date(#{billDate,jdbcType=DATE},'yyyy-MM-dd'))
</update>

问题出现了:

Map<Object, Object> updateMap = new HashMap<Object, Object>();
updateMap .put("id", bills.getId());
updateMap .put("billDate",dateString);
updateMap .put("amount", bills.getAmount());
updateMap .put("count",bills.getCount());

billsDao.updateBills(updateMap);

当bills.getCount()等于0时,就是无法更新,所以我不得不做了以下判断,然后就有效的解决了这个问题,但是因为什么呢?我也不知道!

Map<Object, Object> updateMap = new HashMap<Object, Object>();
updateMap .put("id", bills.getId());
updateMap .put("billDate",dateString);
updateMap .put("amount", bills.getAmount());
if(0 == bills.getHisCount()){
    updateMap .put("count",0);
}else{
    updateMap .put("count",bills.getCount());
}
billsDao.updateBills(updateMap);
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值