java自带的批量操作,就可以很好的支持大量数据的处理。相比c#,简单很多。c#要使用oracle提供的ODP.NET,效率才很高,但是代码却很复杂。总之,在这方面,c#没得比。当然,这里的表是没加索引的,加了索引,效率会变慢,但是还是很高效。

 1 long startTime=System.currentTimeMillis();
 2
 3         Connection conn=null;
 4         try{
 5             conn=getConnection();
 6             conn.setAutoCommit(false);
 7
 8             PreparedStatement stmt=conn.prepareStatement("INSERT INTO product_tmp VALUES (?,?,?,?)");
 9             System.out.println("数据大小:"+datas.size());        //1000000
10
11             int num=0;
12             for(Values v:datas){
13                 num++;
14                 stmt.setInt(1, v.getId());
15                 stmt.setString(2, v.getStr1());
16                 stmt.setString(3, v.getStr2());
17                 stmt.setString(4, v.getStr3());
18                 stmt.addBatch();
19                 //注意: 每5万,提交一次;这里不能一次提交过多的数据,我测试了一下,6万5000是极限,6万6000就会出问题,插入的数据量不对。
20                 if(num>50000){
21                     stmt.executeBatch();
22                     conn.commit();
23                     num=0;
24                 }
25             }
26             stmt.executeBatch();
27             conn.commit();
28         }catch(Exception e){
29             conn.rollback();
30             e.printStackTrace();
31         }finally{
32             closeConnection(conn);
33             long endTime=System.currentTimeMillis();
34             System.out.println("方法执行时间:"+(endTime-startTime)+"ms");
35         }

转载于:https://www.cnblogs.com/myCodingSky/p/3302879.html

JDBC插入百万数据,不到5秒!相关推荐

  1. oracle+循环插入sql,SQL server,Oracle循环插入百万数据

    SQL server,Oracle循环插入百万数据 SQL server,Oracle循环插入百万数据 压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本 declare @ma ...

  2. dapper 使用sqlbulkcopy,50秒插入百万数据

    在netcore中常常使用的EF,Dapper等orm框架,在做批量数据插入的时候,一般都是两种操作: 1:逐行插入,insert into.... 2:批量插入. 最近项目中遇到个问题,需要同时插入 ...

  3. 低配MySQL数据库几十秒插入百万数据

  4. 【优化】C#利用ODP.NET往oracle中高效插入百万数据

    1.将字典Dictionary<string, object[]>  改为Dictionary<string, object>,如果是object[]  在调用时某些转换不了 ...

  5. sql语句插入百万测试数据

    开发的过程中,很多时候我们需要插入百万数据来测试功能和性能,今天我来教大家最简单的插入方法 -----------------1.新建表---------------------CREATE TABL ...

  6. jdbc批处理+手动事务+多线程实现81秒插入1000万数据(多线程版)

    现在来试试多线程能够多少秒钟插入千万数据 /*** @Author: guandezhi* @Date: 2019/4/13 15:35*/ public class JdbcUtils {priva ...

  7. java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...

    packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;import ...

  8. 为何插入10万数据只需2秒

    文章目录 一.前言 二.问题 1.url后面useServerPrepStmts是什么? 2.url后面rewriteBatchedStatements是什么? 3.这两个参数对语句执行有什么影响? ...

  9. 【SpringBoot项目中使用Mybatis批量插入百万条数据】

    SpringBoot项目中使用Mybatis批量插入百万条数据 话不多说,直接上代码,测试原生批处理的效率 开始测试 背景:因为一些业务问题,需要做多数据源,多库批量查询.插入操作,所以就研究了一下. ...

  10. Java 百万数据秒级导出到Excel中

    出自: 腾讯课堂 700多分钟干货实战Java多线程高并发高性能实战全集 , 我学习完了之后, 我给 老师在课上说的话做了个笔记,以及视频的内容,还有代码敲了一遍,然后添加了一些注释,把执行结果也整理 ...

最新文章

  1. Visual Studio 2017中的编译器工具布局
  2. py2exe使用相对路径的当前目录问题
  3. BugkuCTF web2
  4. kali Linux 火狐浏览器改中文
  5. 【PyTorch】中view()==>相当于numpy中resize()、reshape()的功能
  6. ubuntu16.04安装docker(阿里云镜像)
  7. 网络TCp数据的传输设计(黏包处理)
  8. java算法腐烂橘子,答案——腐烂的橘子算法题目
  9. 手机900e模式如何救_手机护眼模式真的有用吗?长时间看手机如何保护视力?...
  10. public protected default private权限修饰符理解
  11. mysqli 语句和mysql语句一样吗_mysqli语句的用法
  12. Excel图表之道一突破常规
  13. Linux下破解UE
  14. VarianceThreshold
  15. 为知笔记保存为html,为知笔记 | 如何保存微信内容到为知笔记?
  16. JavaScript:实现返回格式化的电话号码的字符串算法(附完整源码)
  17. P1852 跳跳棋(建模LCA)
  18. Mysql:设置主键自动增长起始值
  19. Pycharm 报错 Environment location directory is not empty 解决
  20. 相机、镜头以及线激光器选型总结

热门文章

  1. Oracle中的用户创建和权限的分配
  2. Learning-Python【1】:交互式环境与变量的使用
  3. EF分组后把查询的字段具体映射到指定类里面的写法
  4. 前端面试题2016--CSS
  5. ThinkPHP 3 的输出
  6. oracle注意事项
  7. VMware复制Centos6虚拟机要改的地方
  8. 在Eclipse中使用JUnit4进行单元测试(上)
  9. 地方税务局行政效能管理(行政审批)整体解决方案
  10. java day41【JSP 、MVC开发模式 、EL表达式 、JSTL标签 、三层架构】