使用mybatis执行对应的SQL Mapper配置中的insert、update、delete等标签操作,控制台未报错,数据库记录不变,sql语句单独执行又可以成功

示列

在mapper.xml里代码为

<update id="updateStatus" parameterType="java.lang.String">

    UPDATE table_name
    SET apistatus = CASE apistatus
        WHEN 'Y' THEN 'N'
        WHEN 'N' THEN 'Y'
        ELSE apistatus
    END
    WHERE id in(#{ids})
</update>

接口调用代码为:

@Override
public void updateStatus(String ids) {
        Mapper.updateStatus(ids);

}

控制台信息为:

==>  Preparing: UPDATE table_nameSET apistatus = CASE apistatus WHEN 'Y' THEN 'N' WHEN 'N' THEN 'Y' ELSE apistatus END WHERE id IN (?)
==> Parameters: 1797561729169264642,1797566300528611330(String)
<==    Updates: 0

不见报错信息,说明sql语句没有问题,并且sql语句在数据库是可以执行成功,数据也更新成功。

找到问题:

mapper.xml 文件sql语句变量设置“#{ids}”表达啥问题;最后把“#{ids}”换成“${}”,接口调完,数据更新成功;

正确代码:

<update id="updateStatus" parameterType="java.lang.String">

    UPDATE jfjfz_gjsz
    SET apistatus = CASE apistatus
        WHEN 'Y' THEN 'N'
        WHEN 'N' THEN 'Y'
        ELSE apistatus
    END
    WHERE id in(${ids})
</update>
知识点补充:
        mybatis配置文件xml中$与#的区别https://blog.csdn.net/u013131716/article/details/100761140
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值