JDBC p4 批处理

这篇具有很好参考价值的文章主要介绍了JDBC p4 批处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

批处理

  • 基本介绍:

    1. 当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。
    2. JDBC的批量处理语句包括下面方法:
      • addBatch():添加需要批量处理的SQL语句或参数;
      • executeBatch():执行批量处理语句;
      • clearBatch():清空批处理包的语句;
    3. JDBC连接MySQL时,如果要使用批处理功能,请在url中加入参数:rewriteBatchedStatements=true
    4. 批处理往往和PreparedStatement一起搭配使用,可以即减少编译次数,又减少运行次数,效率大大提高。
    5. 批处理是将我们的SQL语句先存放在ArrayList中,当添加到指定的值后就executeBatch,批量处理。批处理会减少我们发送sql语句的网络开销,而且减少编译次数,因此效率提高。

    案例:文章来源地址https://www.toymoban.com/news/detail-609649.html

    package com.hspedu.jdbc.batch_;
    
    import com.hspedu.jdbc.utils.JDBCUtils;
    import org.junit.jupiter.api.Test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * @author: 86199
     * @date: 2023/7/20 15:34
     * Description: 演示Java 的 批处理
     */
    public class Batch_ {
        //传统方法添加数据到admin2表
        @Test
        public void noBatch(){
            //得到连接
            Connection connection;
            PreparedStatement preparedStatement;
    
            try {
                connection = JDBCUtils.getConnection();
    
                String sql = "insert into admin2 values (NULL, ?, ?)";
                preparedStatement = connection.prepareStatement(sql);
    
    
                System.out.println("开始执行");
                long start = System.currentTimeMillis();
                for (int i = 0; i < 5000; i++) {
                    preparedStatement.setString(1, "jack" + i);
                    preparedStatement.setString(2, "666");
                    //执行
                    preparedStatement.executeUpdate();
                }
                long end = System.currentTimeMillis();
                System.out.println("传统方式 耗时 = " + (end - start));//传统方式 耗时 = 4825
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
    
            //关闭资源
            JDBCUtils.close(null, preparedStatement, connection);
        }
    
    
        //使用批量方式添加数据
        @Test
        public void batch(){
            //得到连接
            Connection connection;
            PreparedStatement preparedStatement;
    
            try {
                connection = JDBCUtils.getConnection();
    
                String sql = "insert into admin2 values (NULL, ?, ?)";
                preparedStatement = connection.prepareStatement(sql);
    
    
                System.out.println("开始执行");
                long start = System.currentTimeMillis();
                for (int i = 0; i < 5000; i++) {
                    preparedStatement.setString(1, "jack" + i);
                    preparedStatement.setString(2, "666");
                    //将 sql语句加入批处理包
                    //执行
                    preparedStatement.addBatch();
                    //当有5000条时,再批量执行
                    if((i + 1) % 1000 == 0){
                        preparedStatement.executeBatch();
                        //清空
                        preparedStatement.clearBatch();
                    }
                }
                long end = System.currentTimeMillis();
                System.out.println("批量包方式 耗时 = " + (end - start));//批处理方式 耗时 = 87
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
    
            //关闭资源
            JDBCUtils.close(null, preparedStatement, connection);
        }
    }
    
    

到了这里,关于JDBC p4 批处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • redis批处理优化

    一个命令在网络传输的时间往往是远大于在redis中执行命令的时间的,如果每条命令都要逐条经历网络传输,耗时将会大大增加,我们不妨将命令多量少次的传输给redis,这样就大大减少了因为网络传输时间,大大提高的效率 2.1.单机模式下的批处理 2.2.集群模式下的批处理 这

    2024年01月19日
    浏览(47)
  • BAT 批处理脚本教程

    第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。 了解了大概意思后

    2024年02月02日
    浏览(52)
  • 【bat】批处理脚本大全

    目录 1.概述 2.变量 3.运算符 3.2.重定向运算符 3.3.多命名运算符 3.4.管道运算符 4.命令 4.1.基本命令 4.2.参数传递 4.3.查看脚本内容 4.4.注释 4.5.日期和时间 4.6.启动脚本 4.7.调用其他bat 4.8.任务管理 4.8.1.任务列表查看 4.8.2.任务终止 4.9.文件夹 4.10.关机 4.11.环境变量 4.12.目录 4.12.1

    2024年02月04日
    浏览(55)
  • 大数据处理平台的架构演进:从批处理到实时流处理

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:大数据系列 ✨文章内容:大数据框架演进 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 大数据处理平台的架构演进经历了从批处理到实

    2024年02月10日
    浏览(49)
  • 初探Flink的Java实现流处理和批处理

    端午假期,夏日炎炎,温度连续40度以上,在家学习Flink相关知识,记录下来,方便备查。 开发工具 :IntelliJ Idea Flink版本 :1.13.0 本次主要用Flink实现 批处理 (DataSet API) 和 流处理 (DataStream API)简单实现。 第一步、创建项目与添加依赖 1)新建项目 打开Idea,新建Maven项目

    2024年02月10日
    浏览(53)
  • MyBatis批处理,使用foreach

    测试代码: 批量插入数据的局限性: 无法获取插入数据的id 批量生成的SQL太长,可能会被服务器拒绝 测试代码

    2024年02月07日
    浏览(40)
  • Unity静态合批处理详解

    静态批处理的原理 静态合批最重要的一件事就是合并网格。 在运行前 或是 发布前,场景中 相同材质 ,并且标记为 Batching Static (自动静态合批)或者通过代码调用合并函数(StaticBatchingUtility.Combine 手动静态合批)的物体,引擎会把网格信息取出来,之后对网格上的顶点进

    2023年04月22日
    浏览(80)
  • 批处理文件修改注册表

    首先建一个txt文件,然后把txt的后缀改为bat 下面示例改ie的起始页 下图是修改完后的内容,其中Start Page是需要修改项的名字,REG_SZ是类型 命令说明

    2024年02月11日
    浏览(53)
  • Windows下批处理删除文件

    最近我使用Maven的时候会出现下载jar包不成功的现象,然后需要把它删除然后重新下载,但是有时候文件过多,一个个删除太花费时间,所以用bat的批处理会很舒服。 bat的语法我之前没遇到过,然后我是边学习边试验,写出了一个简陋版的批处理文件。 我的思路是: 1、遍历

    2024年02月13日
    浏览(56)
  • Spring Batch 批处理框架

    Spring Batch 是一个轻量级、全面的批处理框架,旨在支持开发对企业系统的日常操作至关重要的健壮的批处理应用程序。Spring Batch 建立在人们期望的 Spring Framework 特性(生产力、基于 POJO 的开发方法和一般易用性)的基础上,同时使开发人员可以在必要时轻松访问和使用更高

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包