1.通过创建临时表进行数据去重
    /**
     * 创建临时表
     */
    @Update({"drop temporary table if exists ${tableName};", "create temporary table ${tableName} select doctor_id from crm_speaker where  1=2 "})
    void createTemoraryTable(@Param("tableName") String tableName);
    /**
     * 保存数据到临时表里面以便校验数据重复
     */
    @Insert("<script>" +
            "insert into ${tableName} (doctor_id) values\n" +
            "    <foreach collection=\"list\" item=\"doct\" index=\"index\" separator=\",\">\n" +
            "       (" +
            "       #{doct.doctorId,jdbcType=VARCHAR}\n" +
            "       )\n" +
            "    </foreach>\n" +
            "</script>")
    void insertBatchCheckDatas(@Param("list") List<SpeakerDO> dOs, @Param("tableName") String tableName);
    /**
     * 删除临时表
     */
    @Update({"drop temporary table if exists ${tableName}"})
    void dropTemporaryTable(@Param("tableName") String tableName);
2.通过本地文件将数据插入到数据库
https://www.cnblogs.com/wt869054461/p/11926051.html
原文:https://www.cnblogs.com/hanzhengjie/p/14337276.html