使用JDBC进行批处理

适用场景:

当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提升执行效率。

实现方式:

方式一:Statement.addBatch(SQL),可以发送不同的SQL语句

执行SQL语句的方法:executeBatch()

清除批处理命令的方法:clearBatch()

        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        try{
            conn = JdbcUtils.getConnection();
            String sql1 = "insert into testbatch(id,name) values('1','aaa')";
            String sql2 = "update testbatch set name='bbb' where id='1'";

            st = conn.createStatement();  //list
            st.addBatch(sql1);
            st.addBatch(sql2);

            //[3,4] 
            st.executeBatch();
            st.clearBatch();

        }finally{
            JdbcUtils.release(conn, st, rs);
        }

方式二:PreParedStatement.addBatch(),只能发送相同的SQL语句适合做批量插入、批量更新。

执行SQL语句的方法:executeBatch()

清除批处理命令的方法:clearBatch()

        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;

        try{
            conn = JdbcUtils.getConnection();
            String sql = "insert into testbatch(id,name) values(?,?)";   //作批量插入   批量更新
            st = conn.prepareStatement(sql);

            for(int i=1;i<=10000006;i++){
                st.setString(1, i+"");
                st.setString(2, "aa" + i);
                st.addBatch();
                if(i%1000==0){
                    st.executeBatch();
                    st.clearBatch();
                }
            }
            st.executeBatch();
        }finally{
            JdbcUtils.release(conn, st, rs);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄鸭and小黑鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值