Spring批量更新

一般情况下向Mysql中更新或是插入数据都是一条一条插入的,在数据量特别大的情况下一般数万条,就会导致虚拟机内存溢出,不能仅仅靠扩大虚拟机内存来掩盖问题。
解决方法有很多种,这里使用其中一种批量更新方法:
在Dao层的save方法中:
@Override
    public void saveAll(List<EntityName> modelList)
    {
        for (int i = 0; i < modelList.size(); i++ )
        {
            EntityName model=modelList.get(i);
            调用封装的saveorUpdate方法一个一个更新对象,实际上还没执行,还在session缓存中
            this.saveOrUpdata(model);
            //如果缓存中需要更新的数据达到一定量就清空缓存,这样缓存中的数据会批量提交到数据库
            if(i%500==0){
                this.getSession().flush();
                this.getSession().clear();
            }
        }
        //最后量不足设定的值的数据仍存在缓存中,清空缓存,将剩余数据更新入库
        this.getSession().flush();
        this.getSession().clear();
    }

//更新单个对象的方法
    @Override
    public void saveOrUpdata(BrandMarketChange model)
    {
        this.saveOrUpdateObject(model);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值