当前位置: 首页 > news >正文

JAVA每日小知识(关于excel下载时插入和stream流遍历优化)

1、在windows系统下启动rocketmq操作:
在bin目录下使用cmd
分别输入
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

2、在stream流中需要new对象时,可能会出现new很多对象堆积在堆中,这是需要用try,finally在finally中将new的对象为null,并用gc收集
如下:

List<ChildModelParamDTO> childModelParamDTOS = childModels.stream().map(childModel -> {ChildModelParamDTO childModelParamDTO=new ChildModelParamDTO();try {LambdaQueryWrapper<PredictionModelParam> eq1 = new QueryWrapper<PredictionModelParam>().lambda().eq(PredictionModelParam::getPredictionModelId, childModel.getId());PredictionModelParam predictionModelParam = predictionModelParamMapper.selectOne(eq1);childModelParamDTO.setCode(childModel.getCode());childModelParamDTO.setName(childModel.getName());childModelParamDTO.setParameterWeight(predictionModelParam.getParameterWeight());return childModelParamDTO;}finally {childModelParamDTO=null;System.gc();}}).collect(Collectors.toList());


3、在使用easyexcel时,由于监听器无法被spring管理,所以无法在监听器内部使用mp,此时可以用重写的方式将
excel中数据添加进数据库中,如:
 

 EasyExcel.read(file, PredictionParamExcelDTO.class, new ReadListener<PredictionParamExcelDTO>() {@Overridepublic void invoke(PredictionParamExcelDTO predictionParamExcelDTO, AnalysisContext analysisContext) {PredictionParam predictionParam = null;try {predictionParam = new PredictionParam();predictionParam.setMaterialCode(predictionParamExcelDTO.getMaterialCode());predictionParam.setMaterialName(predictionParamExcelDTO.getMaterialName());predictionParam.setProductionLine(predictionParamExcelDTO.getProductionLine());predictionParam.setCapacity(Integer.valueOf(predictionParamExcelDTO.getCapacity()));predictionParamService.save(predictionParam);} catch (Exception e) {e.printStackTrace();log.error("模板上传失败");throw e;}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {}}).sheet().doRead();


4、下载excel的同时,将数据写入excel中:
 

try {httpServletResponse.setContentType("application/vnd.ms-excel");String fileName = URLEncoder.encode("D:/idea/idea_projects/mwlc-dcm-requirement-backend/predictionParamExcel.xlsx", "UTF-8");httpServletResponse.setHeader("content-disposition", "attachment;filename="+fileName);ServletOutputStream outputStream;outputStream=httpServletResponse.getOutputStream();EasyExcel.write(outputStream).head(PredictionParamExcelDTO.class).excelType(ExcelTypeEnum.XLSX).sheet("日基准产能表模板").doWrite(这里放需要写入excel的数据);outputStream.close();}catch (IOException o){throw new RuntimeException(o);}

http://www.lryc.cn/news/155116.html

相关文章:

  • 阿里后端开发:抽象建模经典案例
  • 【车载以太网测试从入门到精通】——DoIP BootLoader刷写测试(含CAPL源码)
  • RK开发板的USB连接(Ubuntu)
  • Redis-Cluster集群的部署(详细步骤)
  • Vulnhub: Hogwarts: Bellatrix靶机
  • 机器学习(吴恩达第一课)
  • 固定资产管理怎么改革
  • 【js】防抖和节流的使用场景和区别:
  • Blazor前后端框架Known-V1.2.14
  • 港陆证券:五日线破位怎么看?
  • 睿趣科技:抖音小店多久可以做起来
  • onnx 模型切割掉conv后面的节点,设置输出层名称和最后节点名称一致,设置输出层shape和输出节点一致.
  • 泛型的学习
  • L1-061 新胖子公式(Python实现) 测试点全过
  • 潜艇来袭(Qt官方案例-2维动画游戏)
  • 50ETF期权开户平台(0门槛期权开户指南)
  • leaflet · 关于轨迹移动
  • 学生宿舍水电费自动缴费系统/基于javaweb的水电缴费系统
  • 机器人中的数值优化(十三)——QP二次规划
  • 语言深入理解指针(非常详细)(三)
  • 实训笔记8.31
  • el-table 垂直表头
  • B081-Lucene+ElasticSearch
  • 机器学习:塑造未来的核心力量
  • RK3568-i2c-适配8010rtc时钟芯片
  • Spring Security - 基于内存快速demo
  • 6 | 从文本文件中读取单词并输出不重复的单词列表
  • 【微信小程序篇】- 多环境(版本)配置
  • ssh配置(一、GitLabGitHub)
  • 开了抖店后就可以直播带货了吗?想在抖音带货的,建议认真看完!