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

大学网站开发实验室建设方案建定制营销型网站

大学网站开发实验室建设方案,建定制营销型网站,seo知识培训,政务公开微信网站开发方案书一、需求描述 Excel表格里面大约有20个sheet页#xff0c;每个sheet页65535条数据#xff0c;需要读取全部数据#xff0c;并导入至数据库。 找了好多种方式#xff0c;EasyExcel比较符合#xff0c;下面看代码。 二、实现方式 采用EasyExcel框架的doReadAll()方法 1、…一、需求描述 Excel表格里面大约有20个sheet页每个sheet页65535条数据需要读取全部数据并导入至数据库。 找了好多种方式EasyExcel比较符合下面看代码。 二、实现方式 采用EasyExcel框架的doReadAll()方法 1、DemoController /*** 导入文件分析*/public void importAll(){String fileName D:\\aa.xlsx;//读取所有Sheet的数据.每次读完一个Sheet就会调用这个方法EasyExcel.read(fileName, new EasyExceGeneralDatalListener(empService)).doReadAll();} 2、EmpService  import java.util.List; import java.util.Map;public interface EmpService {public void importData(ListMapInteger, String dataList); }3、EmpServiceImpl  import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Timestamp; import java.util.HashMap; import java.util.List; import java.util.Map;import org.springframework.stereotype.Service;import com.ruoyi.imp.service.EmpService; import com.ruoyi.jdbc.util.JDBCDruidUtils;Service public class EmpServiceImpl implements EmpService {/** 测试用Excel导入超过10w条数据,经过测试发现,使用Mybatis的批量插入速度非常慢,所以这里可以使用 数据分批JDBC分批插入事务来继续插入速度会非常快*/Overridepublic void importData(ListMapInteger, String dataList) {//结果集中数据为0时,结束方法.进行下一次调用if (dataList.size() 0) {return;}//JDBC分批插入事务操作完成对20w数据的插入Connection conn null;PreparedStatement ps null;try {long startTime System.currentTimeMillis();System.out.println(此次共dataList.size() 条数据导入开始时间: startTime ms);// JDBCDruidUtils.getConnection() 此部分为JDBC连接百度一下就有conn JDBCDruidUtils.getConnection();//控制事务:默认不提交conn.setAutoCommit(false);String sql insert into tp_import_all (wy,kh,ch,dk,on,wlc,ncv,mc,jmc) values;sql (?,?,?,?,?,?,?,?,?);ps conn.prepareStatement(sql);//循环结果集:这里循环不支持烂布袋表达式for (int i 0; i dataList.size(); i) {MapInteger, String item dataList.get(i);ps.setString(1, item.get(0));ps.setString(2, item.get(1));ps.setString(3, item.get(2));ps.setString(4, item.get(3));ps.setString(5, item.get(4));ps.setString(6, item.get(5));ps.setString(7, item.get(6));ps.setString(8, item.get(7));ps.setString(9, item.get(8));//将一组参数添加到此 PreparedStatement 对象的批处理命令中。ps.addBatch();}System.out.println(importData方法executeBatch()...开始执行);//执行批处理ps.executeBatch();System.out.println(importData方法executeBatch()...执行结束);System.out.println(importData方法commit()...开始提交);//手动提交事务conn.commit();System.out.println(importData方法commit()...提交结束);long endTime System.currentTimeMillis();System.out.println(dataList.size() 条,导入结束时间: endTime ms);System.out.println(导入用时: (endTime - startTime) ms);} catch (Exception e) {e.printStackTrace();System.out.println(catch Exception e);} finally {//关连接JDBCDruidUtils.close(conn, ps);System.out.println(JDBCDruidUtils.close 关连接);}}}4、EasyExceGeneralDatalListener  import java.util.ArrayList; import java.util.List; import java.util.Map;import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.ruoyi.imp.service.EmpService;// 事件监听 public class EasyExceGeneralDatalListener extends AnalysisEventListenerMapInteger, String {/*** 处理业务逻辑的Service,也可以是Mapper*/private EmpService empService;/*** 用于存储读取的数据*/private ListMapInteger, String dataList new ArrayListMapInteger, String();public EasyExceGeneralDatalListener() {}public EasyExceGeneralDatalListener(EmpService empService) {this.empService empService;}Overridepublic void invoke(MapInteger, String data, AnalysisContext context) {//数据add进入集合dataList.add(data);//size是否为100000条:这里其实就是分批.当数据等于20w的时候执行一次插入if (dataList.size() ExcelConstants.GENERAL_ONCE_SAVE_TO_DB_ROWS) {//ExcelConstants.GENERAL_ONCE_SAVE_TO_DB_ROWS Integer类型控制条数//存入数据库:数据小于1w条使用Mybatis的批量插入即可;saveData();//清理集合便于GC回收dataList.clear();}}/*** 保存数据到DB** param* MethodName: saveData* return: void*/private void saveData() {System.out.println(saveData方法importData...开始);// empService.importData(dataList);System.out.println(saveData方法importData...结束);// 回收dataList.clear();}/*** Excel中所有数据解析完毕会调用此方法** param: context* MethodName: doAfterAllAnalysed* return: void*/Overridepublic void doAfterAllAnalysed(AnalysisContext context) {System.out.println(doAfterAllAnalysed方法saveData...开始);// 调用方法saveData();System.out.println(doAfterAllAnalysed方法saveData...结束);// 回收dataList.clear();} }三、其他问题 1、所用版本 dependency             groupIdcom.alibaba/groupId             artifactIdeasyexcel/artifactId             version2.2.10/version         /dependency 2、可能会碰到null的报错可以检查下poi版本是否冲突这边用的4.1的版本 如果出现poi-ooxml是4.x版本poi是3.x  可能会出错
http://www.hkea.cn/news/14258336/

相关文章:

  • 厦门外贸公司做网站企业门户网站建设方案怎么写
  • 社科联网站建设情况汇报抖音推广网站
  • 网站建设需求调研过程js搜索网站开发
  • 校园门户网站建设实施方案制作芝士需要哪些设备
  • 网站代运营收费阿里云做网站官网
  • 高端建站网站现在pc网站的标准一般是做多大
  • 怎么上传图片到公司网站免费国外ip地址
  • 连云港市城乡建设局网站行业网站营销特点
  • 网站开发合同管辖权异议wordpress主题栏
  • 学校门户网站建设报告惠东做网站报价
  • 婚庆公司网站模板下载9420高清免费视频在线观看
  • 网站建设有哪几种企业建设网站的功能是什么
  • 查找全国免费网站建设注册网站刀具与钢材范围
  • 嘉兴网站建设方案托管商城网站建设价格费用
  • 关于网站建设运营的保密协议asp.net 4.0网站开...
  • element ui设计网站泉州公司网站设计
  • 学校网站建设发展历程曼网企业名录搜索软件
  • 企业网站开发课程wordpress更换域名更改数据库
  • 西安网站优化平台微信小程序怎么做网页
  • 网站备案行业wordpress添加源码
  • 网站上怎么做星星评分东莞音乐制作公司
  • 做搜狗网站优化排深圳网站备
  • 设计网站页面特效怎么做属于建设工程合同的有哪些
  • 线上做交互的网站网站搭建服务平台
  • 凌云县城乡建设局网站汽车网站页面
  • 城乡建设部网站广州市二手手表交易平台哪个好
  • 网站建设管理教程h5和html的区别
  • 出版社网站必须做企业可信认证嘛saas网站开发
  • 优化型网站是什么意思asp.net 网站提速
  • 软件资源网站推荐建站系统平台