Java的JDBC的批量提交

package com.fd.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCBatch {

    public static void main(String[] args) {
        Connection conn = null;
        Statement statement = null;
        ResultSet rs = null;
        
        try {
            Class.forName("com.mysql.jdbc.Driver");
            
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/iot", "root", "root");
            //关键 设置为手动提交
            conn.setAutoCommit(false);
            statement = conn.createStatement();
            long start = System.currentTimeMillis();
            for(int i = 0; i < 20000; i++) {
                statement.addBatch("insert into user(id, username, password, nickname) values('" + i + "', 'aaaaa', 'bbbbb', 'dccc')"); 
            }
            
            statement.executeBatch();
            conn.commit();
            long end = System.currentTimeMillis();
            System.out.println("end - start = " + (end - start) + " ms");
            
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if(rs != null) 
                    rs.close();

            } catch (SQLException e) {
                e.printStackTrace();
            }    
            
            try {
                if(statement != null)
                    statement.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            try {
                if(conn != null)
                    conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }    
    }

}

 

posted @ 2018-09-19 09:41  SparkQuant  阅读(5517)  评论(0编辑  收藏  举报