使用JDBC进行批处理(两种方法)

16、Spring Batch 从关系型数据库读取数据的方法与实践 本文详细介绍了使用 Spring Batch 从关系型数据库读取数据的多种方法,包括基于 JDBC 的游标和分页读取,以及基于 ORM(如 Hibernate 和 JPA)的读取方式。文章还通过示例配置和代码演示了如何高效地实现数据读取,并对比了不同方法的优缺点,以帮助开发者根据实际需求选择合适的技术方案。 阅读详情

使用JDBC进行批处理(两种方法)

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

二.  实现批处理有两种方式,第一种方式:

•  Statement.addBatch(sql)  list

三.  执行批处理SQL语句

•  executeBatch()方法:执行批处理命令

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

四.      采用Statement.addBatch(sql)方式实现批处理:

•   优点:可以向数据库发送多条不同的SQL语句。

•   缺点:

lSQL语句没有预编译。

l当向数据库发送多条语句相同,但仅参数不同的SQL语句时,需重复写上很多条SQL语句。例如:

           Insert into user(name,password)values(‘aa’,’111’);

           Insert into user(name,password)values(‘bb’,’222’);

           Insert into user(name,password)values(‘cc’,’333’);

           Insert into user(name,password)values(‘dd’,’444’);

五.实现批处理的第二种方式:

•   PreparedStatement.addBatch()

•   采用PreparedStatement.addBatch()实现批处理

•   优点:发送的是预编译后的SQL语句,执行效率高。

•   缺点:只能应用在SQL语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。

实例分析:

      package com.hbsi.test;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

import com.hbsi.utils.DBManager;

 

public class Demo3 {

    public static void main(String[] args) {

       Demo3 d=new Demo3();

       d.testBatch();

    }

    public void testBatch(){

       Connection con=null;

       Statement st=null;

       ResultSet rs=null;

      

       try {

           con=DBManager.getConnection();

           String sql1="insert intotestbatch value(1,'aaa')";

           String sql2="insert intotestbatch value(1,'aaa')";

           String sql3="select fromtestbatch where id=1";

           st=con.createStatement();//st对象中有一个集合对象list

           //向批中添加sql语句

           st.addBatch(sql1);

           st.addBatch(sql2);

           st.addBatch(sql3);

           //提交给批

           st.executeBatch();//影响行数

           st.clearBatch();

          

          

       } catch (SQLException e) {

           // TODO Auto-generatedcatch block

           e.printStackTrace();

       }finally{

           DBManager.release(con, st, rs);

       }

      

      

    }

    public void testBatch2(){

       Connection con=null;

       PreparedStatement st=null;

       ResultSet rs=null;

      

       try {

           con=DBManager.getConnection();

           String sql="inster intotestbatch value(?,?)";

           st=con.prepareStatement(sql);

           for(int i=3;i<10000004;i++){

              st.setInt(1, i);

              st.setString(2, "aa"+i);//已经形成了一条完整的sql语句

              st.addBatch();

              //可防止outofmemoryError异常,但是Mysql插入时比较慢。

              if(i%1000==0){

                  st.executeBatch();

                  st.clearBatch();

              }

              st.executeBatch();

              st.clearBatch();

             

           }

           st.executeBatch();

           st.clearBatch();

          

//         st.setInt(1, 3);

//         st.setString(1, "qq");//已经形成了一条完整的sql语句

//        

//         st.addBatch();

//        

//         st.setInt(1, 4);

//         st.setString(2, "ddd");//有形成了第二条完整的sql语句

//         st.addBatch();

          

       } catch (SQLException e) {

           // TODO Auto-generatedcatch block

           e.printStackTrace();

       }finally{

           DBManager.release(con, st, rs);

       }

      

      

    }

 

}

 

 

 

IoT 平台架构全景图:从设备到 AI 的完整技术体系深度解析 随着物联网设备规模进入百万级时代,IoT 平台架构已经从简单的设备接入系统演变为完整的数据平台。本文从系统架构师视角,深度解析 IoT 平台的完整技术体系,包括设备接入、MQTT 通信、消息流平台、数据平台与 AI 决策系统,并结合主流云平台实践,构建从设备到 AI 的完整 AIoT 架构认知。 阅读详情

相关推荐

Cesium进阶学习四、shadertoy(着色器)

Cesium进阶学习着色器

程迷学习的博客 4317

jdbc批处理

孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十六)——使用JDBC进行批处理   在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。   JDBC实现批处理有两种方式:statement和preparedstatement 一、使用Statement

C18298182575的博客 330

python-pptx库中文文档及使用样例

个人使用样例及部分翻译自官方文档,并详细介绍chart的使用

4万+

使用JDBC进行批处理

当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。 2、实现批处理有两种方式。 l 第一种方式:Statement.addBatch(sql)  (Statement中有一个集合属性list存储所有的sql),执行批处理SQL语句 executeBatch()方法:执行批处理命令 clearBatch()方法:清除批处理命

3802

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

MOBsf联动雷电模拟器(在docker国内库撤销后)

MobSF (全称:Mobile Security Framework,中文名:移动安全框架) 是一个自动化的移动应用程序(Android / iOS / Windows)开源测试工具,该工具采用Python开发,能够执行静态,动态和恶意软件分析。MobSF提供了很多自动化分析功能,尤其适用于Android应用。安装必备(默认已准备好)docker(kali) 现在的国内镜像源都已经下架了只能开代理下载桌面版然后给pull到本地。

qq_48149564的博客 1600

Java JDBC中的批处理SQL语句的详解

一、JDBC中批处理SQL语句的介绍 二、使用批量处理和非批量处理,进行演示,看具体的耗时区别 public class Batch_ { @Test public void noBatch() throws Exception { Connection connection = JDBCUtils.getConnection(); String sql = "INSERT INTO ADMIN2 VALUES(null,?,?)"; Pre

路宇的博客 1593

HTTPDebugger实战:iTunes登录协议抓包与签名验证全解析

HTTPS抓包是分析客户端与服务端交互的重要手段,其原理是通过中间人证书解密TLS流量,从而观察请求与响应细节。在调试iTunes登录协议时,抓包能帮助我们定位签名验证失败、x-timestamp过期等棘手问题。然而,许多教程中常见的mumu模拟器抓包、fiddler手机抓包或charles抓包unknown问题,往往让新手陷入工具陷阱。本文以HTTPDebugger为切入点,从TLS握手到认证请求,系统拆解iTunes登录协议的关键字段与签名机制,覆盖证书配置、进程监听、域名过滤等实战经验,辅以Apple

weixin_30768881的博客 193

java中jdbc的批处理_JavaWeb ----使用JDBC实现批处理

JDBC实现批处理方式有两种:statement() orpreparedstatement()一.使用preparedstatement()方法实现package test;import java.io.InputStream;import java.sql.*;import java.util.Properties;import org.junit.Test;/*** JDBC操作* */p...

weixin_39944638的博客 196

PCL 计算点云法向量并显示【2026最新版】

PCL计算法向量并显示,用OMP进行计算加速以及法线定向的深层次理解、操作。博客长期更新,本文最近更新时间为:2026年1月28日。

点云侠的博客 32万+

《大数据: Hive 交互命令和常用配置》

一、Hive 交互命令 1. 首先解决一个可能发生的问题 (log4 jar包冲突) 我这里解决方法就是删除一个,我删的是hive下的包 yexiang@hadoop1:<hive>$ hive SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/soft/apache-hive-2.3.7-bin/lib/log4j-slf4j-impl-2.6.2.ja.

yexiang优快云的专栏 287

JavaWeb学习笔记(十五)—— 使用JDBC进行批处理

一、什么是批处理   批处理就是一批一批的处理,而不是一个一个的处理!   当你有10条SQL语句要执行时,一次向服务器发送一条SQL语句,这么做效率上很差!处理的方案是使用批处理,即一次向服务器发送多条SQL语句,然后由服务器一次性处理。   批处理只针对更新(增、删、改)语句,批处理没有查询什么事儿!   JDBC实现批处理有两种方式:statement和preparedst...

VNOpU2015的专栏 206

基于MATLAB的BOC调制信号捕获算法仿真

然而,在实际的使用过程中,由于室内信号衰减以及遮挡等因素的影响,接收机在GPS信号弱化时会很容易丢失导航信息。与其他的调制方式相比,BOC具有较好的抗多径性能和更高的频带效率。通过本文的介绍,我们可以更加深入地了解BOC调制信号的捕获算法,并且掌握了如何使用MATLAB软件对其进行仿真实现。通过实验数据的分析,我们可以看出该算法对于BOC调制信号的捕获具有较高的准确率和稳定性,因此具有一定的工程应用价值。在BOC调制完成后,我们需要进行信号的捕获,这一步涵盖了信号检测、码偏差估计、载波频率估计等过程。

2301_79326559的博客 567

比较JDBC和Mybatis进行批处理时的性能比较

执行批量操作时,做了个比较Mybatis和JDBC执行时间的记录,JDBC还是强大太多了! jdbc.properties文件 jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&rewriteBatche...

weixin_41167961的博客 1632

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

千万条sql mysql批处理_用JDBC操作MySQL——大量数据库操作时使用批处理提速

之前所有的操作由于数据量很小,所以没有进行批处理的优化,性能也没有出现明显的恶化,但是随着我用java处理数据量的大幅提高,频繁使用静态SQL语句的方法严重降低了处理效率,这里总结一下JDBC批处理的方法,来提高数据库的吞吐量。首先,在SQL语句的形成上,我们可以使用StringBuilder合成SQL,也可以使用JDBC的set方法将参数带入。JDBC的批处理方法已知的有2大类:基于Statem...

weixin_32184669的博客 277

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JDBC专题(五)-JDBC批处理操作

1.JDBC批处理概述 批量处理允许您将相关的SQL语句分组到批处理中,并通过对数据库的一次调用提交它们。 当您一次向数据库发送多个SQL语句时,可以减少连接数据库的开销,从而提高性能。 JDBC实现批处理有两种方式:statement和preparedstatement 2.使用Statement对象进行批处理操作 使用Statement对象添加要批量执行SQL语句,如下: 1.使用create...

专业的计算机毕业设计指南 607

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

javaweb学习总结——使用JDBC进行批处理

在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。   JDBC实现批处理有两种方式:statement和preparedstatement 一、使用Statement完成批处理   1、使用Statement对象添加要批量执行SQL语句,如下: 1 Statement.addBatc

AlbenXie的博客 420

jdbc之批处理

当需要向数据库发送一批sql指令时,应该避免一条一条的向数据库发送命令,而应该采用jdbc的批处理机制,以提升效率。 jdbc提供两种批处理机制: 第一种: statement.addbatch(sql);,这个方法返回一个list集合,执行批处理指令------executeBatch(),之后调用clearBatch(),清理批。 Connection conn = null; Sta

jjkang的博客 422

实现数据库的批处理两种方式,以及比较其优缺点

package com.storge; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; import org.junit.Test; /*  *jdbc的批处理有两种机

weidianlun的博客 6949

(十七)使用JDBC进行批处理

目录 业务场景: 第一种方式 第二种方式 批处理中的 update() 方法 注意事项 备注: 业务场景: 当需要向数据库中发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率; 使用JDBC进行批处理,实现批处理有两种机制; 第一种方式 Statement.addBatch(sql1) ; ...

young-youth的博客 274

JAVA的JDBC批处理的学习分享

在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。  JDBC实现批处理有两种方式: 第一种方式:Statement.addBatch(sql) 第二种方式:PreparedStatement.addBatch() 使用Statement完成批处理   1.使用Statement对象添加要...

酷酷的锐的博客 280

javaweb学习总结(三十六)——使用JDBC进行批处理

  在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。  JDBC实现批处理有两种方式:statement和preparedstatement 一、使用Statement完成批处理   1、使用S...

chengluwei3014的博客 82

Web阶段day05(JDBC、SQL注入、JDBC批处理、DBCP、C3P0)

day05 1.JDBC 注册数据库驱动 获取数据库连接 创建传输器 传输sql并返回结果 遍历结果 关闭资源 2.SQL注入攻击(XXX’#) 由于SQL语句的参数是由前台页面发送到后台,sql语句是在后台拼接而来,在拼接的过程中,用户数据了数据库的关键字符,导致sql语句的语义发生了变化,这种攻击方式称之为sql注入攻击。 PreparedStatemnet 有预编译功能。 发送sql语句: ...

taoxuexiba的博客 173
上一篇: JDBC处理大数据(大二进制数据的存储和读取)
下一篇: 获得数据库自动生成的主键
日依
博客等级 码龄15年 165粉丝 165原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值