zoukankan      html  css  js  c++  java
  • MyBatis写入大量数据

    1. Servcie

    public void insertBatch(List<ExtendedAreaSucharge> extendedAreaSucharges) {
        int groupSize = 500;
        int groupNo = extendedAreaSucharges.size() / groupSize;
    
        if (extendedAreaSucharges.size() <= groupSize) {
            extendedAreaSuchargeDao.saveBatch(extendedAreaSucharges);
        } else {
            List<ExtendedAreaSucharge> subList = null;
            for (int i = 0; i < groupNo; i++) {
                subList = extendedAreaSucharges.subList(0, groupSize);
                extendedAreaSuchargeDao.saveBatch(subList);
                extendedAreaSucharges.subList(0, groupSize).clear();
            }
            if (extendedAreaSucharges.size() > 0) {
                extendedAreaSuchargeDao.saveBatch(extendedAreaSucharges);
            }
        }
    }

    2. Mapper.java

    @Mapper
    public interface ExtendedAreaSuchargeDao {
        void saveBatch(@Param("extendedAreaSuchargeList") List<ExtendedAreaSucharge> extendedAreaSuchargeList);
    }

    3. Mapper.xml

    <sql id="keyBatch">
            id,organization_id,version,calc_type,country_code,country_name,covert,kg_price,logistics_supplier_item_id,logistics_supplier_item_name,min_charge,no_zero_length,number_code,original_desc,post_code,post_code_end,post_code_start,post_code_type,prefix,post_code_end4char,post_code_start4char
        </sql>
        <sql id="valueBatch">
            #{item.id},#{item.organizationId},#{item.version},#{item.calcType, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler},#{item.countryCode},#{item.countryName},#{item.covert},#{item.kgPrice},#{item.logisticsSupplierItemId},#{item.logisticsSupplierItemName},#{item.minCharge},#{item.noZeroLength},#{item.numberCode},#{item.originalDesc},#{item.postCode},#{item.postCodeEnd},#{item.postCodeStart},#{item.postCodeType, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler},#{item.prefix},#{item.postCodeEnd4Char},#{item.postCodeStart4Char}
        </sql>
        <insert id="saveBatch">
            INSERT INTO surc_extended_area_sucharge
            (<include refid="keyBatch"/>)
            values
            <foreach collection="extendedAreaSuchargeList" item="item" index="index" separator=",">
                (<include refid="valueBatch"/>)
            </foreach>
        </insert>
  • 相关阅读:
    spring 整合 shiro框架
    Kafka常见问题及解决方法
    设计模式之解释器模式规则你来定(二十五)
    设计模式之原型模式简单即复杂(二十四)
    设计模式之访问者模式层次操作(二十三)
    设计模式之状态模式IFORNOIF(二十二)
    设计模式之职责链模式永不罢休(二十一)
    设计模式之组合模式透明实用(二十)
    设计模式之享元模式高效复用(十九)
    设计模式之迭代器模式解析学习源码(十八)
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/12712352.html
Copyright © 2011-2022 走看看