一、一般我会这样做:
- 通过POI读取需要导入的Excel;
- 以文件名为表名、列头为列名、并将数据拼接成sql;
- 通过JDBC或mybatis插入数据库;
操作起来,如果文件比较多,数据量都很大的时候,会非常慢。
访问之后,感觉没什么反应,实际上已经在读取 + 入库了,只是比较慢而已。
读取一个10万行的Excel,居然用了191s,我还以为它卡死了呢!
private void readXls(String filePath, String filename) throws Exception {@SuppressWarnings("resource")XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(filePath));// 读取第一个工作表XSSFSheet sheet = xssfWorkbook.getSheetAt(0);// 总行数int maxRow = sheet.getLastRowNum();StringBuilder insertBuilder = new StringBuilder();insertBuilder.append("insert into ").append(filename).append(" ( UUID,");XSSFRow row =