package blob; import java.sql.Connection; import java.sql.PreparedStatement; import jdbc.utils.*; //使用PreparedStatement实现更高效的批量插入 //如果不能使用batch方法,在url最后添加 ?rewriteBatchedStatements=true public class InsertTest { static public void testInsert2() { Connection con = null; PreparedStatement ps = null; try { con = JDBCUtils.getConnection(); String sql = "insert into good values(?,?)"; ps = con.prepareStatement(sql); //不允许自动提交数据 con.setAutoCommit(false); for(int i=1;i<=20000;i++) { ps.setInt(1, i); ps.setString(2, "good_"); ps.addBatch();//使用批处理Batch来暂存数据 if(i%500 == 0) {//再一起放到数据库里 ps.executeBatch(); ps.clearBatch(); } } //最后统一提交数据 con.commit(); } catch(Exception ex) { ex.printStackTrace(); } finally { JDBCUtils.closeResource(con, ps); } } public static void main(String[]args) { testInsert2(); } }
1