Java mybatis 插入10w 條數據

Java mybatis 插入10w 條數據

  • Java + mybatis + MySQL
  • 分批次,list 循環插入

java service 代碼

public void batchInsert() {
        // 每次插入記錄數
        int size = 2000;
        // 總共執行插入操作次數
        int i = 0;
        // 待處理元數據
        List<Demo> list = Lists.newArrayList();
        if (!CollectionUtils.isEmpty(list)) {
            while (list.size() > size) {
                List<Demo> subList = list.subList(0,size);
                list = list.subList(size, list.size());
                // 批量入庫
                batchInsert2(subList);
                i++;
            }
            if (!CollectionUtils.isEmpty(list)) {
                batchInsert2(list);
            }
        }
    }

    /**
     * @Author CaiXiaowei
     * @Description 具體插入操作
     * @Date 2020/3/21 11:19 
     * @param 
     * @return 
     **/
    private void batchInsert2(List<Demo> list) {
        demoMapper.batchInsert(list);
    }

mybatis xml文件

<insert id="batchInsert" >
    INSERT INTO company_balance
    (id, name)
    VALUES
    <foreach collection ="list" item="demo" separator =",">
        (#{balance.id}, #{balance.name})
    </foreach >
</insert>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章