栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-18

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-18

java实现大数据量导出 实现思路 1.需要快速导出的处理方法
  • 快速导出时需要注意execl的版本,不同版本的execl可以容纳的数据量是不同的,个人建议使用07版的execl,可以容纳100w的数据,使用SXSSFWorkbook类进行execl的操作。另外导出时不建议使用list进行多次的传递,使用查多少写入多少的方式。这里只贴核心代码,剩下的整理完后进行补充。
try (SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);) {
            StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
            Cursor cursor = studentMapper.selectAllUse();
            Iterator iterator = cursor.iterator();
            Row row;
            //2为预留的两行字段 -行数记录器
            int rowNum = 2;
            while (iterator.hasNext()) {
                Student student = iterator.next();
                rowNum++;
                //下标问题怎么处理。
                row = sheet.createRow(rowNum);
                row.createCell(0).setCellValue(student.getId());
                row.createCell(1).setCellValue(student.getAge());
                row.createCell(2).setCellValue(student.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
2.对于不需要快速导出的方法
  • 这种实现起来最简单,导出时使用线程进行导出,前端使用loding或进度条进行拖延时间,后端等待线程执行完返回线程id,根据id进行返回值的下载,将导出和下载分开,另外在导出时根据数据量进行分execl,导出完进行记得压缩。方法简单,不进行实现
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号