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

诛仙3官方网站时竹任务荧灵怎么做中企动力股票代码

诛仙3官方网站时竹任务荧灵怎么做,中企动力股票代码,琼海网站制作,做无障碍浏览网站文章目录 Excel 5s内导入20w条数据1. 生成20w条数据1.1 使用Excel 宏生成20w条数据1.2 生成成功 2. ExecutorType#xff1a;批量操作执行器类型2.1 ExecutorType.SIMPLE2.2 ExecutorType.BATCH2.3 ExecutorType.REUSE 3. 20w条数据直接插入数据库3.1 使用ExecutorType.SIMPLE… 文章目录 Excel 5s内导入20w条数据1. 生成20w条数据1.1 使用Excel 宏生成20w条数据1.2 生成成功 2. ExecutorType批量操作执行器类型2.1 ExecutorType.SIMPLE2.2 ExecutorType.BATCH2.3 ExecutorType.REUSE 3. 20w条数据直接插入数据库3.1 使用ExecutorType.SIMPLE3.2 使用ExecutorType.BATCH3.3 ExecutorType.REUSE 3.半 拓展4. 总结5. 多线程版本 Excel 5s内导入20w条数据 1. 生成20w条数据 1.1 使用Excel 宏生成20w条数据 打开Excel按下AltF11打开VBA编辑器。 在VBA编辑器中选择插入 - 模块然后将以下代码粘贴到模块中 Sub GenerateData()Dim i As LongFor i 1 To 200000Cells(i, 1).Value i 插入IDCells(i, 2).Value 张三 i 插入姓名可以根据需要自定义命名规则Cells(i, 3).Value Int((50 - 20 1) * Rnd 20) 插入随机年龄示例为20-50之间的随机数Next i End Sub 按下F5执行宏即可生成20万条数据。 1.2 生成成功 因为数据量较大所以需要稍微等上一小段时间 2. ExecutorType批量操作执行器类型 在MyBatis中ExecutorType是一种枚举类型用于指定SQL语句执行的方式。其中ExecutorType.BATCH和ExecutorType.SIMPLE是两种常见的执行方式。 2.1 ExecutorType.SIMPLE ExecutorType.SIMPLE是MyBatis框架中的一种执行器类型用于执行SQL语句并返回结果集。在这种执行器类型下每个SQL语句的执行请求都将打开一个新的数据库连接执行完毕后立即释放连接适用于小型应用或轻负载的情况。 特点 ExecutorType.SIMPLE是默认的执行方式。每次执行SQL语句时都会打开一个新的PreparedStatement对象。每条SQL语句都会立即被执行并提交到数据库。每个SQL语句的执行请求都将打开一个新的数据库连接执行完毕后立即释放连接适用于常规的单个或少量SQL操作。 2.2 ExecutorType.BATCH ExecutorType.BATCH会将一批SQL语句集中在一起批量执行减少了与数据库的交互次数提高性能。多条SQL语句会一起提交到数据库执行可以提升执行效率。可以通过sqlSessionFactory.openSession(ExecutorType.BATCH)方法手动触发批量执行。适用于需要执行大量SQL操作的场景如批量插入、更新或删除多条记录。 2.3 ExecutorType.REUSE 当多次调用相同的SQL语句时会重用已编译的SQL语句和执行计划。适用于单条SQL语句的重复执行例如在一个循环中多次执行相同的SQL语句。每次执行都会创建一个新的Statement对象但会重用已编译的SQL语句和执行计划以提高执行效率。 3. 20w条数据直接插入数据库 dao 层 的代码 Insert(insert into excel(id,name,age) values (#{id},#{name},#{age})) void insert(Man man);3.1 使用ExecutorType.SIMPLE public void insert1() {//用于记录读取数据所需要的时间long start0 System.currentTimeMillis();//ExcelUtil hutool工具类用来读取Excel文件ExcelReader reader ExcelUtil.getReader(FileUtil.file(C:\\Users\\26896\\Desktop\\test.xlsx), sheet1);//将读取到的 reader 转化为 ListMan集合ListMan mans reader.readAll(Man.class);//读取数据的结束时间同时也是写入数据库的开始时间long start System.currentTimeMillis();//sqlSessionFactory是通过ioc容器注入的 设置其SqlSession的执行器格式ExecutorType.SIMPLE默认SqlSession sqlSession sqlSessionFactory.openSession(ExecutorType.SIMPLE);ExcelDao mapper sqlSession.getMapper(ExcelDao.class);//循环将ListMan中的数据插入数据库for (Man man : mans) {mapper.insert(man);}sqlSession.commit();long end System.currentTimeMillis();sqlSession.close();System.out.println(最终的结果为 (start - start0) );System.out.println(最终的结果为 (end - start) );}执行结果 3.2 使用ExecutorType.BATCH rewriteBatchedStatementstrue 当该参数设置为true时MySQL会对批量操作进行重写将多个SQL语句合并成一条批量执行的SQL语句。这样可以减少网络传输和数据库连接的开销从而提高批量操作的效率。 public String insert2() {long start0 System.currentTimeMillis();ExcelReader reader ExcelUtil.getReader(FileUtil.file(C:\\Users\\26896\\Desktop\\test.xlsx), sheet1);ListMan mans reader.readAll(Man.class);long start System.currentTimeMillis();SqlSession sqlSession sqlSessionFactory.openSession(ExecutorType.BATCH);ExcelDao mapper sqlSession.getMapper(ExcelDao.class);for (Man man : mans) {mapper.insert(man);}sqlSession.commit();long end System.currentTimeMillis();sqlSession.close();System.out.println(读取最终的结果为 (start - start0) );System.out.println(插入数据库最终的结果为 (end - start) );return null;}执行结果 3.3 ExecutorType.REUSE ExecutorType.REUSE 本身不做验证这里主要比较其它两个区别但是都到这里啦就写上 public void insert3() {long start0 System.currentTimeMillis();ExcelReader reader ExcelUtil.getReader(FileUtil.file(C:\\Users\\26896\\Desktop\\test.xlsx), sheet1);ListMan mans reader.readAll(Man.class);long start System.currentTimeMillis();SqlSession sqlSession sqlSessionFactory.openSession(ExecutorType.REUSE);ExcelDao mapper sqlSession.getMapper(ExcelDao.class);for (Man man : mans) {mapper.insert(man);}sqlSession.commit();long end System.currentTimeMillis();sqlSession.close();System.out.println(读取最终的结果为 (start - start0) );System.out.println(插入数据库最终的结果为 (end - start) );}3.半 拓展 吃瓜观众 歌歌 呀既然ExecutorType.SIMPLE适合执行一个语句那就用MyBatis 的,将20w条数据拼接为1条。这样是不是就快了 歌歌非常好 xml代码 insert idaddinsert into excel(id,name,age) valuesforeach collectionlist itemman separator,(#{man.id},#{man.name},#{man.age})/foreach/insertservice代码 AutowiredExcelDao excelDao;public String add2() {long start0 System.currentTimeMillis();ExcelReader reader ExcelUtil.getReader(FileUtil.file(C:\\Users\\26896\\Desktop\\test.xlsx), sheet1);ListMan mans reader.readAll(Man.class);long start System.currentTimeMillis();excelDao.add(mans);long end System.currentTimeMillis();System.out.println(最终的结果为 (start - start0) );System.out.println(最终的结果为 (end - start) );return null;}4. 总结 在需要将大量数据通过java程序放入数据库时 可以通过sqlSessionFactory.openSession(ExecutorType.BATCH)方法手动触发批量执行。并且可以通过在链接数据库的时候加上rewriteBatchedStatementstrue来开始数据库的批处理操作 5. 多线程版本 点个关注不迷路 个人主页 个人主页
http://www.hkea.cn/news/14431633/

相关文章:

  • 免费响应式模板网站模板下载微信网站登录
  • 包头网站网站怎么在微博推广
  • 邢台哪儿能做网站哪些网站做科技专题
  • 如何使用wp做网站网站建设客户开发方案
  • 专业网站设计联系长沙知名网站建设
  • 如何提升网站收录厦门外贸商城网站建设
  • 农业建设项目管理信息系统网站wordpress跟php
  • 宝塔自助建站源码科技发展给我们的生活带来的变化
  • 怎么把网站做成手机网站德州网站制作
  • 岫岩洋河网站建设微信公众号推文模板素材
  • 新桥企业网站建设在线网站做成app
  • dede 汽车网站模板网站建设实训 考核要求
  • 无锡网站建设wordpress $_SERVER
  • 我的网站模板下载 迅雷下载 迅雷下载单招网站开发基础知识
  • 西安单位网站建设涡阳网站建设
  • 拼团做的比较好的网站哪些编程语言适合网站开发
  • 怎么找网站建设怎么做网站写书
  • 企业网站建设费用会计科目可商用的设计网站
  • 美橙做过网站案例移动端网站如何建设
  • 新手学做网站东莞网站建设 乐云seo
  • 浙江省建设业技术创新协会网站哈尔滨网站搜索优化公司
  • 郑州航空港区建设局网站深圳做网站行业
  • 海口模板建站哪家好大连开发区规划建设局网站
  • 中国的网站为什么要备案做网站的大骗子
  • 哪个网站可以做前端项目用安卓做网站
  • 网站建设与维护的工资宿迁网络推广公司
  • 淄博微信网站制作北京百姓网免费发布信息
  • 手机网站方案.doc微信开发者平台怎么登
  • 济南槐荫区最新消息郑州企业网站优化哪家便宜
  • 中国建设部监理工程师查询网站中国核工业二三建设有限公司太平岭项目部