MySql的初学习 -- 第十六章 -- 批处理

MySql的初学习 -- 第十六章 -- 批处理


博客说明

文章内容输出来源:拉勾教育Java就业急训营

什么是批处理

批处理(batch) 操作数据库

  1. 批处理指的是一次操作中执行多条SQL语句,批处理相比于一次一次执行效率会提高很多。
  2. 当向数据库中添加大量的数据时,需要用到批处理。

举例: 送货员的工作:

  1. 未使用批处理的时候,送货员每次只能运送 一件货物给商家; .
  2. 使用批处理,则是送货员将所有要运送的货物, 都用车带到发放处派给客户。

批处理方法

方法 说明
void addBatch() 将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 通过调用方法 executeBatch 可以批量执行此列表中的命令。
int[] executeBatch() 每次提交一批命令到数据库中执行,如果所有的命令都成功执行了, 那么返回一个数组,这个数组是说明每条命令所影响的行数

批处理的开启

MySql是默认关闭批处理的,如要使用批处理,需要先开启
需要再url中添加:rewriteBatchedStatements=true
例如: url=jdbc:mysql://127.0.0.1:3306/db5?characterEncoding=UTF-8&rewriteBatchedStatements=true

 	/**
     * 使用批处理添加一万条数据
     *
     * @param args
     */
    public static void main(String[] args) throws SQLException {
    
    
        //1.获取连接
        Connection con = DruidUtils.gerConnection();
        //2.编写Sql
        String sql = "insert into testBatch(uname) values(?)";
        //3.获取预处理对象
        PreparedStatement ps = con.prepareStatement(sql);

        //4.执行批量插入操作
        for (int i = 0; i < 10000; i++) {
    
    
            ps.setString(1, "张飞" + i);
            //5.将Sql添加到批处理列表
            ps.addBatch();
        }

        //添加时间戳,测试执行效率
        long start = System.currentTimeMillis();

        //5.统一执行 批量插入操作
        ps.executeBatch();

        //添加时间戳,测试执行效率
        long end = System.currentTimeMillis();

        System.out.println("插入1w条数据需要:" + (end - start) + "毫秒");

        DruidUtils.CloseDBCP(con,ps);
    }

猜你喜欢

转载自blog.csdn.net/zy3062231314/article/details/113124221