jdbc插入百万条数据最快的实现方式

2017-07-05 11:40:00
admin
原创
2613
摘要:jdbc插入百万条数据最快的实现方式
package com.wanhejia.db;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.mysql.jdbc.PreparedStatement;

public class TestDB {
 public static void main(String[] args) {
 try {
 SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 ");      
         Connection conn = ConnectDB.getConnection("MySQL", "127.0.0.1:3306/test_model", "root",
                 "123456");
         String prefix="INSERT INTO customers (name,title,create_time) values";
         PreparedStatement statement = null;
         if (conn == null) {
             System.out.println("Connection the database is failled !");
         } else {
         StringBuffer suffix = new StringBuffer();
         conn.setAutoCommit(false); 
         statement = (PreparedStatement) conn.prepareStatement("");
         System.out.println("执行开始时间*********"+myFmt.format(new Date()));
         for(int i=1;i<=100;i++){
         for (int j = 1; j <= 10000; j++) {
                          // 构建SQL后缀
                          suffix.append("('"+"李小龙" +i*j+"','long@live.com'"+ ",'"+myFmt.format(new Date())+"'"+"),");
                      }
         String sql=prefix+suffix.substring(0, suffix.length() - 1);
         statement.addBatch(sql);
         statement.executeBatch();
         conn.commit();
         suffix=suffix = new StringBuffer();
         }
             ConnectDB.closeConn(conn); //关闭资源 
           // 4.2 调用Statement对象的executeUpdate(sql) 执行SQL 语句的插入
             System.out.println("执行结束时间***************"+myFmt.format(new Date()));
         }
     } catch (SQLException e) {
         e.printStackTrace();
     }
 }
}

发表评论
评论通过审核之后才会显示。
文章分类
联系方式
联系人: 郑州-小万
电话: 13803993919
Email: 1027060531@qq.com
QQ: 1027060531
网址: www.wanhejia.com