简单了解下批处理

1.什么是批处理
        1.1批处理(batch) 操作数据库,批处理指的是一次操作中执行多条SQL语句,批处理相比于一次一次执行效率会提高很多。当向数据库中添加大量的数据时,需要用到批处理。
        举例: 送货员的工作:
            未使用批处理的时候,送货员每次只能运送 一件货物给商家;
            使用批处理,则是送货员将所有要运送的货物, 都用车带到发放处派给客户。
        1.2 实现批处理
            Statement和PreparedStatement都支持批处理操作,这里我们介绍一下PreparedStatement的批处理方式:
        1) 要用到的方法
            方法                    说明
            void addBatch()        将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。通过调用方法 executeBatch 可以批量执行此列表中的命令。
            int[] executeBatch()   每次提交一批命令到数据库中执行,如果所有的命令都成功执行了,那么返回一个数组,这个数组是说明每条命令所影响的行数

2)mysql 批处理是默认关闭的,所以需要加一个参数才打开mysql 数据库批处理,在url中添加

rewriteBatchedStatements=true
例如: url=jdbc:mysql://127.0.0.1:3306/db5?characterEncoding=UTF-8&rewriteBatchedStatements=true

3)创建一张表

CREATE TABLE testBatch (
id INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(50)
)

4) 测试向表中插入 1万条数据


```perl
  public class TestBatch {
            //使用批处理,向表中添加 1万条数据
                    public static void main(String[] args) {
                    try {
                        //1.获取连接
                            Connection con = DruidUtils.getConnection();
                            //2.获取预处理对象
                            String sql ="insert into testBatch(uname) values(?)";
                            PreparedStatement ps = con.prepareStatement(sql);
                            //3.创建 for循环 来设置占位符参数
                            for (int i = 0; i < 10000 ; i++) {
                            ps.setString(1,"小强"+i);
                            //将SQL添加到批处理 列表
                            ps.addBatch();
                        }
                    //添加时间戳 测试执行效率
                    long start = System.currentTimeMillis();
                    //统一 批量执行
                    ps.executeBatch();

            }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值