一、采用Statement实现批处理

  1. 使用Statement 对象添加要批量执行sql语句(如下)
 Statement.addBatch(sql1);Statement.addBatch(sql2);Statement.addBatch(sql3);
  1. 执行批处理Sql语句:Statement.executeBath();
  2. 清除批处理命令:Statement.clearBatch();
  • 优点:可以向数据库发送多条不同的SQL语句
  • 缺点:SQL语句没有预编译
  • 当向数据库发送多条语句相同,但仅参数不同的SQL语句时。需重复写上很多条SQL语句。

测试代码如下:

package jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;import com.mysql.jdbc.Driver;/** statement 批处理*
*/public class StatementBatch {public static void main(String[] args) throws Exception {//加载驱动Class.forName("com.mysql.jdbc.Driver");//获取连接//创建StatementConnection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase","root","root123");System.out.println("你好啊"+conn);Statement stm = conn.createStatement();String sql1 = "insert into test(ename,job,deptno) values('小龙人','clerk',20)";String sql2 = "insert into test(ename,job,deptno) values('美人鱼','leader',10)";String sql3 = "update test set ename = '小龙人1' where ename = '小龙人'";//添加批处理stm.addBatch(sql1);stm.addBatch(sql2);stm.addBatch(sql3);//执行批处理stm.executeBatch();//清楚批处理SQLstm.clearBatch();//释放资源stm.close();conn.close();     }
}

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

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

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

测试代码如下:

package jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;public class TestPreparedStatementbatch {public static void main(String[] args) throws Exception {//加载驱动Class.forName("com.mysql.jdbc.Driver");//获取连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase", "root", "root123");System.out.println(conn);//创建PreparedStatement对象String sql = "insert into test( empno, ename) values(?,?)";PreparedStatement pstm = conn.prepareStatement(sql);//pstm 绑定数据for(int i= 4020;i<4080;i++){pstm.setInt(1, i);pstm.setString(2, "蒋静"+i);//添加批处理pstm.addBatch();//执行批处理,当i是100的倍数时,执行,执行完清除掉if(i%100==0){pstm.executeBatch();pstm.clearBatch();}}//将批处理余下的语句执行完毕pstm.executeBatch();//释放资源pstm.close();conn.close();}}

三、小结

搭配着使用就完了呗。

两种方式完成批处理的优缺点相关推荐

  1. linux的进程与库之间的通信两种方式

    文章目录 前言 一.进程A与算法库b的通信方式之一:动态dlopen加载算法库b,编译的时候是需要加载该头文件就可以,无需连接该算法库b 具体的实施细节: 二.进程A与算法库b的通信方式之二:进程A编 ...

  2. Java面试题:线程实现的两种方式及匿名内部类实现

    QUESTION:线程实现的两种方式及匿名内部类实现 ANSWER: 1.多线程两种实现方式 (1)继承Thread     * 定义类继承Thread     * 重写run方法     * 把新线 ...

  3. springbatch开启任务的两种方式

    前言 Springbatch开启任务通常有如下两种方式,通过定时任务或者通过接口调用,定时任务使用简单,适用于数据来源稳定不需要过多外部参数干扰的情形,而接口的方式更加灵活,可以通过外部进行参数配置满 ...

  4. RocketMq 消费消息的两种方式 pull 和 push

    在RocketMQ中一般有两种获取消息的方式,一个是拉(pull,消费者主动去broker拉取),一个是推(push,主动推送给消费者) 区别是: push方式里,consumer把轮询过程封装了,并 ...

  5. RocketMq : 消费消息的两种方式 pull 和 push

    文章目录 1.概述 两种方式的优缺点对比: push pull 1.概述 原创在:https://blog.csdn.net/zhangcongyi420/article/details/905483 ...

  6. Mybatis关联查询的两种方式

    首先要了解对象的三种关联方式 *数据库表的关联关系有三种,一对一,一对多,多对多 一对一   是通过在任意一方的主键,引入对方主键作为外键来实现的,就是说主键与外键为同一字段 一对多   是通过在&q ...

  7. RabbitMQ(六)——Spring boot中消费消息的两种方式

    前言 上一篇博客中,我们只是简单总结了Spring boot中整合RabbitMQ的操作,针对消息消费的两种方式只是简单给了一个实例,这篇博客,我们进一步总结关于Spring boot消息消费的相关功 ...

  8. SDN的两种方式分析

    ONF成立两年之际,SDN开始得到业界的广泛认同,尤其是从IT真正走入了CT,而CT的网络类型五花八门,这使得SDN的应用场景急剧增长,大有无所不能之势. 业界目前所推的SDN无非两种 方式一是原生的 ...

  9. 服务器主机GHOST装系统,大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过...

    原标题:大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过 Hello大家好,我是兼容机之家的小牛! 电脑装系统用GHOST好,还是原装版本好?这是很多小伙伴疑惑的问题,那么让我们来具体分析 ...

最新文章

  1. [转]关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决...
  2. 动物识别专家系统python_Python有哪些作用?
  3. CountDownLatch 介绍与举例实现
  4. C#实现软件授权,限定MAC运行(软件license管理,简单软件注册机制)
  5. Springboot-importSelector
  6. 优酷 米兔机器人_米兔机器人如何发豆芽?
  7. ODP.NET 之 ExecuteNoQuery 执行 Merge into 返回值
  8. elasticsearch报错:exceeds the [index.highlight.max_analyzed_offset] limit [1000000]
  9. 网上流传的飞扬学院Java_收获| 云和JAVA、UI双班毕业,飞扬青春再出发!
  10. 地理信息系统(GIS)网络架构
  11. CSDN博客上传的图片水印去除
  12. PLG日志平台搭建: Promtail + Loki + Grafana 全步骤
  13. wx 微信小程序 session_key的作用
  14. 计算机上无线网络开关在哪里,台式电脑wifi开关在哪
  15. 几种软件开发方法对比
  16. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出
  17. 五子棋游戏Java代码简单实现(含活动图和类图设计)
  18. 渝海手机号码归属地查询工具php版 v1.1
  19. 爱普生 RS330 打印机墨水连供装置墨盒吸墨复位方法
  20. 虚拟数字人市场现状研究分析-

热门文章

  1. NKOJ 用魔法生成回文序列
  2. OpenCV实现人脸识别
  3. 【GD32】FreeRTOS-ADC-DMA采集
  4. Adobe Reader的护眼模式设置
  5. ArcGIS相关帮助网址大全——[更新了ArcGIS10.2的帮助信息]
  6. Maven配置Aliyun镜像
  7. 网站策划:一个关于网站商业计划书的模板
  8. java一键设置环境变量_一键设置windows java环境变量
  9. 接口设置trunk怎样再改为access
  10. java获取传感器重量数据,通过距离感应器获取实际距离[FAQ04538][Sensor]java层获得P_sensor距离传感器当前真实值,不止0,1...