zoukankan      html  css  js  c++  java
  • JDBC插入百万数据,不到5秒!

      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         }
  • 相关阅读:
    CURD演示 2
    CURD演示 2
    测试关闭mojo utf-8
    测试关闭mojo utf-8
    mojo 关闭utf8
    mojo 关闭utf8
    标准Web系统的架构分层
    Myeclipse学习总结(6)——MyEclipse断点调试
    RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
    RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
  • 原文地址:https://www.cnblogs.com/myCodingSky/p/3302879.html
Copyright © 2011-2022 走看看