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>
本文探讨了在业务中批量更新状态时遇到的SQL执行问题,针对ID参数为null的情况,通过调整DAO和XML方法,最终采用Map结构解决了问题。作者分享了解决方案,包括使用HashMap存储ID列表和状态,并提供相关代码示例。
3736

被折叠的 条评论
为什么被折叠?



