
@TOC
问题描述如下代码表示,向表中批量添加大量数据,使用批处理方式会大大提升效率,但是在默认情况下,mysql是不允许批量处理的,所以需要加入相关配置。
@Test
public void InsertAll(){
Connection conn = null;
PreparedStatement ps = null;
try {
long start = System.currentTimeMillis();
conn = JDBCUtils.getConnection();
String sql="insert int goods(id)values(?)";
ps = conn.prepareStatement(sql);
for(int i=0;i<20000;++i){
ps.setObject(1,i);
//攒sql
ps.addBatch();
if(i%1000==0){
ps.executeBatch();
ps.clearBatch();
}
}
System.out.println(System.currentTimeMillis()-start);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(conn,ps);
}
}