Java实现批量插入
//方法执行的开始时间
long startTime = System.currentTimeMillis();
Connection conn = null;
try{
//获取连接
conn = getConnection();
//设置不自动提交
conn.setAutoCommit(false);
//准备执行的SQL
PreparedStatement stmt = conn.prepareStatement("INSERT INTO student_tmp VALUES (?,?,?)");
//循环插入100万条数据
for (int i = 0; i < 1000000; i++){
stmt.setInt( 1, i );
stmt.setString( 2, "小明" + i );
stmt.setString( 3, i + "班")
if( i/100000 == 0 ){
//每10万条数据提交一次
stmt.executeBatch();
conn.commit();
}
//提交最后一次的数据,防止有数据未提交
stmt.executeBatch();
conn.commit();
} catch (Exception e) {
//出现异常回滚事务
conn.rollback();
e.printStackTrace();
} finnally {
//断开连接
conn.close();
//方法执行的结束时间
long endTime = System.currentTimeMillis();
System.out.println("方法执行的时间:" + (endTime - startTime) + "ms" );
}