2.开启load data:SHOW GLOBAL VARIABLES LIKE ‘local_infile’;
3.项目数据源上添加参数:set global local_infile=1;
4.例子【反射+Load data】:springboot-mysql配置:&allowLoadLocalInfile=true
java代码: private void saveData(Listlist) { final File loadDataFile = new File(IdUtil.fastSimpleUUID() + "-temp-create.txt"); final FileWriter fileWriter = FileWriter.create(loadDataFile); final StringBuilder builder = new StringBuilder(); balanceList.forEach(balance -> { ReportProfitCostVO profitCostVO = reportConvert.toReportProfitCostVo(balance); // 通过反射获取类的属性字段【ps:此处实体属性修饰符为 “public” 】 final Class clazz = ReportProfitCostVO.class; final Field[] fields = clazz.getFields(); for (Field field : fields) { try { final Object value = field.get(profitCostVO); if (value != null) { builder.append(value); } builder.append("||"); } catch (IllegalAccessException e) { e.printStackTrace(); } } if (builder.length() > 0) { builder.deleteCharAt(builder.length() - 1); builder.deleteCharAt(builder.length() - 1); } builder.append("n"); fileWriter.append(builder.toString()); builder.setLength(0); }); frsReportProfitDetailTempService.saveBatchByLoadData(loadDataFile); loadDataFile.deleteOnExit(); } Mapper层: void insertBatchByLoadData(@Param("path") String absolutePath); sql: LOAD DATA LOCAL INFILE #{path,jdbcType=VARCHAR} INTO TABLE 表名 CHARACTER SET utf8 FIELDS TERMINATED BY '||' LINES TERMINATED BY 'n' ( 字段, 字段, ... )



