Connection conn = getCon(); //获取连接已经封装过的方法
try {
conn.setAutoCommit(false);
Long beginTime = System.currentTimeMillis();
//构造预处理statement
PreparedStatement pst = conn.prepareStatement("insert into ib1 values (?)");
//添加次数
for(int i=1;i<=10000;i++){
pst.setInt(1, i);
pst.addBatch();
//每1000次提交一次
if(i%1000==0){//可以设置不同的大小;如50,100,500,1000等等
pst.executeBatch();
conn.commit();
pst.clearBatch();
}
}
Long endTime = System.currentTimeMillis();
System.out.println("pst+batch:"+(endTime-beginTime)/1000+"秒");
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
对照API看了下,大致就是先堆积大量的数据再一起提交。试了一下,如果是简单的数据,即便添加百万,千万条数据也仅需要若干秒。