关于Mybatis根据ID批量更新,接的参数值为null问题

1、问题描述:

在业务中有一个根据ID,批量更新状态的操作。发现后台sql语句执行的时候id为null

2、问题发生时

dao和xml写法

dao

void updateStatus(List<String> idlist,String status);

xml

         update  kkkk set status_approval_id=#{status} where id in
        <foreach collection="idlist"  open="(" close=")" separator="," item="rp_id">
            #{rp_id}
        </foreach>

这样运行提示idlist 参数找不到,修改成

     update  kkkk set status_approval_id=#{arg1} where id in
        <foreach collection="#{arg0}" open="(" close=")" separator="," item="rp_id">
            #{rp_id}
        </foreach>

这样是可以运行,但是就出现了标题的问题,arg1可以正常接收参数,但是id都是null

3、解决方法

将list,status都放在一个map里,dao方法参数就一个map.

最后代码:

 void updateStatus(HashMap<String,Object> map);

 map.put("ids",idList);
 map.put("status",status);

        update  kkkk set status_approval_id=#{status} where id in
        <foreach collection="ids" open="(" close=")" separator="," item="rp_id">
            #{rp_id}
        </foreach>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值