- 不打开mysql的批处理
@Test
public void TestSqlBatch(){
try{
//加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//1.getConnection()方法,连接MySQL数据库!!
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/resume?characterEncoding=utf-8","root","");
String sql="insert into sb(id,str) values(?,?)";
//2.创建statement类对象,用来执行SQL语句!!
PreparedStatement pstmt= con.prepareStatement(sql);
for (int i=0;i<10000;i++){
pstmt.setInt(1,i);
pstmt.setString(2,"sb"+String.valueOf(i));
pstmt.addBatch();
}
long l1 = System.currentTimeMillis();
pstmt.executeBatch();//执行批!
long l2 = System.currentTimeMillis();
System.out.println("使用時間為:"+(l2 - l1));
}catch(Exception e){
}
}
结果:13170
数据库结果
- 删除刚插入数据库表的数据 打开mysql的批处理
只需要在url中加入rewriteBatchedStatements=true
注意?和&符号的使用
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/resume?characterEncoding=utf-8&rewriteBatchedStatements=true","root","");
结果134
速度明显加快
千万记的把插入的数据删除在进行试验 否则id会重复 报错。