批量操作,可以使用批量操作,和手動提交實務增加速度
批量操作和手動提交
//設置不允許自動提交數據 conn.setAutoCommit(false); String sql = "insert into goods(name)values(?)"; ps = conn.prepareStatement(sql); for(int i = 1;i <= 1000000;i++){ ps.setObject(1, "name_" + i); //1."攢"sql ps.addBatch(); if(i % 500 == 0){ //2.執行batch ps.executeBatch(); //3.清空batch ps.clearBatch(); } } //提交數據 conn.commit();

//批量插入的方式四:設置連接不允許自動提交數據 @Test public void testInsert3() { Connection conn = null; PreparedStatement ps = null; try { long start = System.currentTimeMillis(); conn = JDBCUtils.getConnection(); //設置不允許自動提交數據 conn.setAutoCommit(false); String sql = "insert into goods(name)values(?)"; ps = conn.prepareStatement(sql); for(int i = 1;i <= 1000000;i++){ ps.setObject(1, "name_" + i); //1."攢"sql ps.addBatch(); if(i % 500 == 0){ //2.執行batch ps.executeBatch(); //3.清空batch ps.clearBatch(); } } //提交數據 conn.commit(); long end = System.currentTimeMillis(); System.out.println("花費的時間為:" + (end - start));//20000:83065 -- 565 } catch (Exception e) { //1000000:16086 -- 5114 e.printStackTrace(); }finally{ JDBCUtils.closeResource(conn, ps); } }