Java实现批量插入

//方法执行的开始时间

long startTime = System.currentTimeMillis();

Connection conn = null;

try{

  //获取连接

  conn = getConnection();

  //设置不自动提交

  conn.setAutoCommit(false);

  //准备执行的SQL

  PreparedStatement stmt = conn.prepareStatement("INSERT INTO student_tmp VALUES (?,?,?)");

  //循环插入100万条数据

  for (int i = 0; i < 1000000; i++){

    stmt.setInt( 1,  i );

    stmt.setString( 2,  "小明" + i );

    stmt.setString( 3,  i + "班")

    if(  i/100000 == 0 ){

      //每10万条数据提交一次

      stmt.executeBatch();

      conn.commit();

    }

    //提交最后一次的数据,防止有数据未提交

    stmt.executeBatch();

    conn.commit();

} catch (Exception e) {

  //出现异常回滚事务

  conn.rollback();

  e.printStackTrace();

}  finnally {

  //断开连接

  conn.close();

  //方法执行的结束时间

  long endTime = System.currentTimeMillis();

  System.out.println("方法执行的时间:" + (endTime - startTime) + "ms" );

}

      

原文地址:https://www.cnblogs.com/qinjf/p/8196267.html