@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);
}
}
- 在配置文件中加入 (因为我换成了java8对应的驱动,要求要加cj,其他版本可以忽略)


- 如果报下列的错误,那就是驱动版本太低了,不支持批量处理,下载一个5.1.7以上的版本驱动就可了

- 结果

版权声明:本文为qq_52534495原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。