【实践】jdbc批量插入数据

本文介绍了一种批量写入数据到数据库的方法,并通过实验验证了其效率。使用自定义的DAO层操作,配合预编译语句及手动提交机制,显著提升了数据写入速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文献:http://my.oschina.net/u/1452675/blog/203670

http://superjavason.iteye.com/blog/255423

 1 /*测试批量写入数据*/
 2         long start = System.currentTimeMillis();
 3         DaoRecord daoRecord = new DaoRecord();
 4         List<T> list = new ArrayList<T>();
 5         for(int i = 1; i <= 1000; i++){
 6             for(int j = 1; j <= 1000; j++){
 7                 T t = new T();
 8                 t.setI(i);
 9                 t.setJ(j);
10                 list.add(t);
11             }
12         }
13         daoRecord.InsertBatch(list);
14         System.out.println("耗时:" + (System.currentTimeMillis()-start)+"毫秒");

 

 1 //批量写入数据测试
 2     public void InsertBatch(List<T> list){
 3         String sql = "insert into t(go,back) values(?,?)";
 4         DBHelper dbh = new DBHelper(sql);
 5         Connection conn = dbh.returnConn();
 6         try {
 7             conn.setAutoCommit(false);//注意此句一定要为false,原因见第一篇参考文献
 8             PreparedStatement ps = conn.prepareStatement(sql);
 9             for(int i = 0; i < list.size(); i++){
10                 ps.setInt(1, list.get(i).getI());
11                 ps.setInt(2, list.get(i).getJ());
12                 ps.addBatch();
13                 if (i % 10000 == 0){
14                      ps.executeBatch();
15                      conn.commit();
16                  }
17             }
18             ps.executeBatch();
19             conn.commit();
20             conn.close();
21         } catch (SQLException e) {
22             // TODO 自动生成的 catch 块
23             e.printStackTrace();
24         }
25     }

数据表:

  

实验结果:

    

转载于:https://www.cnblogs.com/landiljy/p/5468711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值