自定义批量执行方法

executeBatch(this.commonManagementMapper, "addStatisticsByBatch", insertlist);

/**
     * 分次批量入库
     *
     * @param mapper
     * @param mapperMethodName
     * @param list
     * @throws Exception
     */
    public static void executeBatch(Object mapper, String mapperMethodName, List<?> list) throws Exception {
        if (list.isEmpty())
            return;
        try {
            Method method = mapper.getClass().getMethod(mapperMethodName, List.class);
            int size = list.size();
            if (size > BATCH_MAX) {
                int num = (size) / BATCH_MAX + 1;
                int start = 0, end = 0;
                for (int i = 1; i <= num; i++) {
                    start = (i - 1) * BATCH_MAX;
                    end = (i * BATCH_MAX) > size ? size : (i * BATCH_MAX);
                    method.invoke(mapper, list.subList(start, end));
                }
            } else
                method.invoke(mapper, list);
        } catch (Exception e) {
            throw e;
        } finally {
            list.clear();
        }
    }
posted @ 2021-08-12 15:22  FY丶  阅读(40)  评论(0)    收藏  举报