mybatis update失败却不报错
1.更新时返回值为0,影响行数为0。不知道为什么,自己尝试在数据库管理系统执行sql语句是有作用的。也不报错,求大神!
2.代码如下:
1)Mapper.xml
<update id="updateByPrimaryKeySelective" parameterType="com.lianhehui.pojo.CardOwn">
update cardown
<set>
<if test="memberid != null">
memberId = #{memberid,jdbcType=INTEGER},
</if>
<if test="cardid != null">
cardId = #{cardid,jdbcType=INTEGER},
</if>
<if test="discount != null">
discount = #{discount,jdbcType=REAL},
</if>
<if test="balance != null">
balance = #{balance,jdbcType=REAL},
</if>
<if test="status != null">
status = #{status,jdbcType=CHAR},
</if>
</set>
where cardOwnId = #{cardownid,jdbcType=INTEGER}
</update>
2)Service(Dao层就省略了)
@Override
public int topUpToCard(CardOwn cardOwn) {
// TODO Auto-generated method stub
return cardOwnDao.updateByPrimaryKeySelective(cardOwn);
}
3)Controller内
CardOwn cardOwn = new CardOwn();
cardOwn.setCardid(cardOwnId);
cardOwn.setBalance(balance+amount);
int success = memberService.topUpToCard(cardOwn);
if (success == 0) {
System.out.println("充值失败");
}else {
System.out.println("充值成功");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我也很菜,或许你可以把update 返回的类型resultType 写出来
运行的时候控制台会输出实际执行时的SQL,好好看看有没有什么问题,或者复制到DBMS执行一下
如果没有异常,就是更新where条件不成立,没有符合更新条件的记录
不知道你有没有配置控制台输出 发出的sql语句的配置 如果配置了可以看一下发出的sql语句是否有问题
如果是出错,应该抛异常。如果更新数是 0 只能说明没更新任何数据,一般来说有两个原因:一个是按 WHERE 条件没找到要更新的数据;另一个原因是找到了,但是新数据和数据库里存的数据是一样的。