myBatis进行批量修改

    xiaoxiao2022-07-06  162

    我的批量修改思想就是生成多条update语句进行修改,上代码吧

    mapper.xml文件

    <update id="updateByBatch" parameterType="java.util.List"> <foreach collection="list" separator=";" item="l"> update businessinfo set businessinfo_status='2' where id=#{l} </foreach></update>

     这种方法接受的类型为list,所以parameterType就填java.util.List,要用map那就自己修改  很简单 道理一样,然后根据你的list个数生成N条sql语句,collection后面填的是参数名,separator是将语句用,隔开,l那就是参数的别名。

    mapper类

    public interface DatabaseinfoMapper { public void updateByBatch(List list); }

     service类

    public interface DatabaseinfoService { public void updateByBatch(List list); }

     接口实现类

    @Service @Transactional(rollbackFor = Exception.class) public class DatabaseinfoServiceImpl implements DatabaseinfoService { @Resource private DatabaseinfoMapper databaseinfoMapper; @Override public void updateByBatch(List list) { databaseinfoMapper.updateByBatch(list); } }

     调用方法

    public void test () { List<Databaseinfo> database=takeDatabaseinfo.getList(); ArrayList list=new ArrayList(); for(Databaseinfo d:database){ list.add(d.getId()); } databaseinfoService.updateByBatch(list);//调用 }

     测试自己根据情况更改

     

    ...........对了这种方法需要在数据库链接地址后面加上&allowMultiQueries=true

    不然会报错

    最新回复(0)