jdbc 数据库批处理insert操作

复制代码
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

posted on   zsben  阅读(1884)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2018-11-13 poj12482 扫描线+lazy-tag

导航

统计

点击右上角即可分享
微信分享提示