中国免费建设网站网址机票网站制作

bicheng/2026/1/17 9:44:32/文章来源:
中国免费建设网站网址,机票网站制作,制作营业执照图片手机软件,网站导航建设注意事项读Excel | Easy Excel 1、 我遇到的数据量超级大#xff0c;使用传统的POI方式来完成导入导出很明显会内存溢出#xff0c;并且效率会非常低#xff1b;2、 数据量大直接使用select * from tableName肯定不行#xff0c;一下子查出来300w条数据肯定会很慢#xff1b;3、 …读Excel | Easy Excel 1、 我遇到的数据量超级大使用传统的POI方式来完成导入导出很明显会内存溢出并且效率会非常低2、 数据量大直接使用select * from tableName肯定不行一下子查出来300w条数据肯定会很慢3、 300w 数据导出到Excel时肯定不能都写在一个Sheet中这样效率会非常低估计打开都得几分钟4、 300w数据导出到Excel中肯定不能一行一行的导出到Excel中。频繁IO操作绝对不行5、 导入时300万数据存储到DB如果循环一条条插入也肯定不行6、导入时300w数据如果使用Mybatis的批量插入肯定不行因为Mybatis的批量插入其实就是SQL的循环一样很慢。 准备工作 1.基于maven搭建springboot工程引入easyexcel依赖这里我是用的时3.0版本 !--EasyExcel相关依赖--dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.0.5/version/dependency 2.创建海量数据的sql脚本 CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, dname VARCHAR(20) NOT NULL DEFAULT , loc VARCHAR(13) NOT NULL DEFAULT ) ;#创建表EMP雇员 CREATE TABLE emp (empno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/ ename VARCHAR(20) NOT NULL DEFAULT , /*名字*/ job VARCHAR(9) NOT NULL DEFAULT ,/*工作*/ mgr MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,/*上级编号*/ hiredate DATE NOT NULL,/*入职时间*/ sal DECIMAL(7,2) NOT NULL,/*薪水*/ comm DECIMAL(7,2) NOT NULL,/*红利*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 /*部门编号*/ ) ;#工资级别表 CREATE TABLE salgrade ( grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, losal DECIMAL(17,2) NOT NULL, hisal DECIMAL(17,2) NOT NULL );#测试数据 INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999);delimiter $$#创建一个函数名字 rand_string可以随机返回我指定的个数字符串 create function rand_string(n INT) returns varchar(255) #该函数会返回一个字符串 begin #定义了一个变量 chars_str 类型 varchar(100) #默认给 chars_str 初始值 abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZdeclare chars_str varchar(100) defaultabcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ; declare return_str varchar(255) default ;declare i int default 0; while i n do# concat 函数 : 连接函数mysql函数set return_str concat(return_str,substring(chars_str,floor(1rand()*52),1));set i i 1;end while;return return_str;end $$#这里我们又自定了一个函数,返回一个随机的部门号 create function rand_num( ) returns int(5) begin declare i int default 0; set i floor(10rand()*500); return i; end $$#创建一个存储过程 可以添加雇员 create procedure insert_emp(in start int(10),in max_num int(10)) begin declare i int default 0; #set autocommit 0 把autocommit设置成0#autocommit 0 含义: 不要自动提交set autocommit 0; #默认不提交sql语句repeatset i i 1;#通过前面写的函数随机产生字符串和部门编号然后加入到emp表insert into emp values ((starti) ,rand_string(6),SALESMAN,0001,curdate(),2000,400,rand_num());until i max_numend repeat;#commit整体提交所有sql语句提高效率commit;end $$#添加8000000数据 call insert_emp(100001,8000000)$$#命令结束符再重新设置为; delimiter ; 3.实体类 Data NoArgsConstructor AllArgsConstructor public class Emp implements Serializable {ExcelIgnoreprivate Integer empno;ExcelProperty(value 员工名称)private String ename;ExcelProperty(value 工作)private String job;ExcelProperty(value 主管编号)private Integer mgr;ExcelProperty(value 入职日期)private Date hiredate;ExcelProperty(value 薪资)private BigDecimal sal;ExcelProperty(value 奖金)private BigDecimal comm;ExcelProperty(value 所属部门)private Integer deptno;} 4.vo类 Data public class EmpVo {ExcelIgnoreprivate Integer empno;ExcelProperty(value 员工名称)private String ename;ExcelProperty(value 工作)private String job;ExcelProperty(value 主管编号)private Integer mgr;ExcelProperty(value 入职日期)private Date hiredate;ExcelProperty(value 薪资)private BigDecimal sal;ExcelProperty(value 奖金)private BigDecimal comm;ExcelProperty(value 所属部门)private Integer deptno;} 5、导出核心代码 Resource private EmpService empService; /*** 分批次导出*/ GetMapping(/export) public void export() throws IOException {Long startTime System.currentTimeMillis();empService.export(); //导出Long endTime System.currentTimeMillis();Long elapsedTime (endTime - startTime) / 1000;System.out.println(导出_方式耗时 elapsedTime s);} public class ExcelConstants {//一个sheet装100w数据public static final Integer PER_SHEET_ROW_COUNT 1000000;//每次查询20w数据每次写入20w数据public static final Integer PER_WRITE_ROW_COUNT 200000; } 实现类中 Override public void export() throws IOException {OutputStream outputStream null;try {//记录总数:实际中需要根据查询条件进行统计即可 Integer totalCount empMapper.selectCount(null);//每一个Sheet存放100w条数据Integer sheetDataRows ExcelConstants.PER_SHEET_ROW_COUNT;//每次写入的数据量20w,每页查询20WInteger writeDataRows ExcelConstants.PER_WRITE_ROW_COUNT;//计算需要的Sheet数量Integer sheetNum totalCount % sheetDataRows 0 ? (totalCount / sheetDataRows) : (totalCount / sheetDataRows 1);//计算一般情况下每一个Sheet需要写入的次数(一般情况不包含最后一个sheet,因为最后一个sheet不确定会写入多少条数据)Integer oneSheetWriteCount sheetDataRows % writeDataRows 0 ? (sheetDataRows / writeDataRows) : (sheetDataRows / writeDataRows 1);//计算最后一个sheet需要写入的次数Integer lastCountAll totalCount - (sheetNum-1)*sheetDataRows;Integer lastSheetWriteCount lastCountAll % writeDataRows 0 ? (lastCountAll / writeDataRows) : (lastCountAll / writeDataRows 1);ServletRequestAttributes requestAttributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletResponse response requestAttributes.getResponse();outputStream response.getOutputStream();//必须放到循环外否则会刷新流ExcelWriter excelWriter EasyExcel.write(outputStream).build();//开始分批查询分次写入for (int i 0; i sheetNum; i) {//创建SheetWriteSheet sheet new WriteSheet();sheet.setSheetName(测试Sheet1i);sheet.setSheetNo(i);//循环写入次数: j的自增条件是当不是最后一个Sheet的时候写入次数为正常的每个Sheet写入的次数,如果是最后一个就需要使用计算的次数lastSheetWriteCountfor (int j 0; j (i ! sheetNum - 1 ? oneSheetWriteCount : lastSheetWriteCount); j) {//分页查询一次20wPageEmp page empMapper.selectPage(new Page(j 1 oneSheetWriteCount * i, writeDataRows), null);ListEmp empList page.getRecords();//使用pagehelper的如下 // int pageNum j 1 oneSheetWriteCount * i; //PageHelper.startPage(pageNum,writeDataRows,getOrderBy(pageable.getSort())).setReasonable(true); //ListDqtbsHiddenDangerQuery list mapper.expmortByPage(dto);//封装成可以导出实体类ListEmpVo empVoList new ArrayList();for (Emp emp : empList) {EmpVo empVo new EmpVo();BeanUtils.copyProperties(emp, empVo);empVoList.add(empVo);}WriteSheet writeSheet EasyExcel.writerSheet(i, 员工信息 (i 1)).head(EmpVo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();//写数据excelWriter.write(empVoList, writeSheet);}}// 下载EXCELresponse.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setCharacterEncoding(utf-8);// 这里URLEncoder.encode可以防止浏览器端导出excel文件名中文乱码 当然和easyexcel没有关系String fileName URLEncoder.encode(员工信息, UTF-8).replaceAll(\\, %20);response.setHeader(Content-disposition, attachment;filename*utf-8 fileName .xlsx);excelWriter.finish();outputStream.flush();} catch (IOException e) {e.printStackTrace();} catch (BeansException e) {e.printStackTrace();}finally {if (outputStream ! null) {outputStream.close();}} } 前端vue的 //导出exportExcel(values) {let this_ thisthis_.spinningExport truethis.$api.export(BASE_URL exportNew, values, 数据查询_${moment(new Date()).format(YYYY-MM-DD)}.xlsx, {success() {this_.spinningExport false},fail() {this_.spinningExport false}})}, 分批量查询例如一个sheet 页 存储 10000条分页每次查1000条每个sheet需要查10次。总数据50000条就分了5个sheet页来显示大批量数据来说easyExcel还是很好用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己做的宫崎骏动漫网站一篇关于大学网站建设与管理的论文

这个题目是贪心算法的基础练习题,解决思路是排序双指针谈心法,先将两个数组分别排序,优先满足最小胃口的孩子。(本题完整题目附在了最后面) 代码如下: class Solution(object):def findContentChildren(se…

阿里巴巴网站图片怎么做的静态网页制作方法

对于一些有实践经验的同学来说,感觉不难,但是落笔到纸面上,就差强人意了,平时这方面要多练习,所想所思要落到纸面上,或者表达清晰让别人听懂,不仅是工作中的一个基本素质,也是个非常…

北安网站设计网络建设公司排行

自己写的东西,要同时推送多个git地址,解决办法如下: 1.先要初始化你的git 进入自己的项目目录,然后执行 git init cd /app/code/go-study git init 2.执行以下脚本: #!/bin/bash #author Oliver #since 2020-09-03 15:24:31git remote rm …

网站开发不满意阿里云做的网站程序员

本文来自 fir.im 首席吉祥物 TraWor. 最近许多用户反映上传速度慢的一塌糊涂,七牛的上传带宽我想肯定是没问题的,那原因不必多想就剩下 DNS 了。 即便本地网络再快,DNS 服务器给了一个很远的服务器地址也没办法很快的上传。 在终端运行这一行…

在线免费看影视网站e福州

​平方差公式是小学奥数计算中的常用公式。通常写为:a-b(ab)x(a-b)它的几何方法推导过程是这样的:如下图所示,四边形ABCD和四边形DEFG为正方形,边长分别为a和b,求阴影部分面积。纯手绘显然,阴影部分面积有2…

网站添加备案信息吗世界著名建筑设计公司

ChatGPT无限次数:点击直达 ChatGPT引领:打造独具魅力的论文 在数字化时代,人工智能技术的快速发展不仅改变了我们生活的方方面面,还在学术研究领域展现出更广阔的可能性。其中,自然语言生成模型ChatGPT凭借其强大的生成能力和智能…

政务网站建设需求wordpress如何添加页面子目录

转载链接:http://blog.009it.com/php/75.html 在php中发送Email可以直接调用系统的mail()函数来完成,但是前提是你在php.ini文件中对mail都已经配置好了,以下为相关的配置信息: [mail function] ; For Win32 only. SMTP localho…

网站建设的基础建设网站比较好的公司吗

随着移动互联网的飞速发展,对于开发人员而言,如何快速地开发出兼容不同平台(iOS、Android)的应用,成为了一个重要的问题。 跨平台应用程序开发框架的好处: 1. 一个App适用于多个设备; 2. 一个…

佛山高端网站建设报价页游在线玩

【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解前言Inception-ResNet讲解Inception-ResNet-V1Inception-ResNet-V2残差模块的缩放(Scaling of the Residuals)Inception-…

长沙品质网站建设优点马鞍山集团网站建设

目录 一、尺寸适配解决方案 1.vw和vh 2.scale 二、数据大屏顶部搭建 1.思路分析

网站开发遵循谷歌外贸

前言:大部分时候我们都是使用pip install去安装一些第三方库,但是偶尔也会有部分库无法安装(最典型的就是dlib这个库),需要采取别的方法解决,这里做笔记记录一下。 使用国内镜像源安装 因为pypi的服务器在…

浦口建设局网站突发 佛山出大事

1.选择按键触发方式 下降沿 2.解决消抖的方法 1)ARM中:延时消抖 2)linux驱动开发:定时器函数 3.框图 内部流程框图: 需要RCC GPIO EXTI GIC章节 中断触发流程: 4.RCC 章节 1)使能GPIOF组 …

金融街做网站的公司建设部网站1667号公告

将图片转为 PDF 的主要原因之一是为了方便共享和传输。此外,将多张图片合并成一个 PDF 文件还可以简化文件管理。之前文章详细介绍过如何使用第三方库Spire.PDF for Python将PDF文件转为图片,那么本文介绍使用同样工具在Python中实现图片转PDF文件的功能…

网站开发框架的工具计算机多媒体辅助教学网站开发

本篇记录了http伪造本地用户的多条字段,便于快速解决题目 用法举例: 直接把伪造本地用户的多个字段复制到请求头中,光速解决部分字段被过滤的问题。 Client-IP: 127.0.0.1 Forwarded-For-Ip: 127.0.0.1 Forwarded-For: 127.0.0.1 Forwarded…

做博客网站最好用什么系统字体 安装到wordpress

Java中的synchronized关键字 synchronized关键字介绍 synchronized块是Java提供的一种原子性内置锁,Java中的每个对象都可以把它当作一个同步锁来使用,这些Java内置的使用者看不到的锁被称为内部锁,也叫作监视器锁。 线程的执行代码在进入…

模板手机网站建设公司wordpress设置用户注册

HEG其实可以批处理可以看我另外一篇博文,不需要写代码。但是对于300以上数量的MODIS影像非常容易自动停止,而且越来越慢。还是打算利用python每个调用。 只提取了MODIS数据当中的IST一个波段,输出成tif,其他什么都没做。在处理前…

青岛开发区网站建设多少钱旅游网站开发公司

作者:ZadigX 企业发布现状痛点 目前企业在选择和实施发布策略时面临以下困境: 1. 缺乏云原生能力: 由于从传统部署转变为云原生模式后,技术架构改造需要具备相关能力的人才。这使得企业在发布策略方面难以入手。 2. 缺乏自动化…

云南照明网站建设万网云主机 wordpress

目录 一、目标1:使用函数分割 二、目标2:使用函数模块 三、目标3:使用正则匹配 一、目标1:使用函数分割 目标:x.x.x.x[中国北京 xx云] 方法:split函数replace函数 1、分割:使用split()方法将…

门户网站建设意义六安做网站的

重点: 1.QPainter在QWidget窗口的paintEvent中使用。 2.QPainter通常涉及到设置画笔、设置画刷、绘图(QPen、QBrush、drawxx)三个流程。 class Widget : public QWidget {Q_OBJECTprotected:void paintEvent(QPaintEvent *event) Q_DEC…

网站建设 东道网络郑州新动力网络技术是干嘛的

目录 同余 一、试题 算法训练 同余方程 同余 同余使人们能够用等式的形式简洁地描述整除关系同余:若 m(正整数),a 和 b 是整数,a%mb%m,或(a-b)%m0,记为 a b(mod m)求解一元线性同余方程等价于…