package test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import util.DBUtil; public class TestDataBase2 { public static void main(String[] args) { Connection conn = DBUtil.getConnection(); String sql = "insert into tb_test2(subject, description, teacher_id, student_id) values (?,?,?,?)"; try { PreparedStatement prep = conn.prepareStatement(sql); // 將鏈接的自動提交關閉,數據在傳送到數據庫的過程當中至關耗時 conn.setAutoCommit(false); long start = System.currentTimeMillis(); for (int i = 0; i < 10; i++) { long start2 = System.currentTimeMillis(); // 一次性執行插入10萬條數據 for (int j = 0; j < 100000; j++) { prep.setString(1, "test2"); prep.setString(2, "test3"); prep.setInt(3, 1234562); prep.setInt(4, 12354545); // 將預處理添加到批中 prep.addBatch(); } // 預處理批量執行 prep.executeBatch(); prep.clearBatch(); conn.commit(); long end2 = System.currentTimeMillis(); // 批量執行一次批量打印執行依次的時間 System.out.print("inner"+i+": "); System.out.println(end2 - start2); } long end = System.currentTimeMillis(); System.out.print("total: "); System.out.println(end - start); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn); } } }數據庫 |