1.假设使用事务:

(1)不使用批处理而是一条一条的SQL语句发送给MySQL的方式,如果有很多语句这样执行,每次到要和MySQL通讯,开销太大;另一方面,这样执行的SQL语句如果中间有一条发送错误,后面的SQL语句是不会执行的,理解为抛出异常,后面的语句当然就不执行了

(2)使用批处理方法,一次过将要执行的SQL语句发送给MySQL,MySQL的机制是:中间有语句错误,后面正确的语句还是会执行

2.假设不使用事务:这个简单,只要事务控制对了,中间有错的话都回滚就是了,后面的SQL语句就无所谓执不执行了

下面给一个executeBatch的Demo

package cn.bl.v2;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;import org.junit.Test;import cn.bl.DBUtil;/*** 批处理* @author BarryLee* @2018年9月18日@下午11:15:50*/
public class Batch {//1.Statement方式@Testpublic void test1() throws Exception {Connection conn = DBUtil.getConnection();Statement st = conn.createStatement();for(int i = 0;i<10;i++) {//这个sql没什么意义,只是为了区分插入的不同数据罢了String sql1 = " insert into pp(name) values('xl"+i+"') ";st.addBatch(sql1);}//删除name以xl开头的记录String sql2 = " delete from pp where name like 'xl%' ";st.addBatch(sql2);int[]res = st.executeBatch();for (int i : res) {//每一行sql的影响记录数System.out.println(i);//sql1都是输出1//sql2对应的是10}}//2.PreparedStatement方式@Testpublic void test2() throws Exception {Connection conn = DBUtil.getConnection();String sql = " insert into pp(name) values(?) ";PreparedStatement pst = conn.prepareStatement(sql);for(int i = 0;i<10;i++) {pst.setString(1, "xl"+i);pst.addBatch();//这里不能带参}sql = " delete from pp where name like 'xl%' ";pst.addBatch(sql);int[]res = pst.executeBatch();for (int i : res) {//每一行sql的影响记录数System.out.println(i);//for循环里面添加的sql语句对应的都是输出1//最后一句对应的是10}}
}

MySQL批处理 - executeBatch方法使用相关推荐

  1. mysql 批处理启动_MySQL开启批处理

    MySQL默认关闭批处理 开启方法 在原始的URL尾部添加开启指令,如下标注语句 url = jdbc:mysql://localhost:3306/mydb3 ?rewriteBatchedStat ...

  2. 在mybatis用mysql的代码块_关于Mybatis 中使用Mysql存储过程的方法

    1.存储过程的简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用 ...

  3. linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...

    linux中解决mysql中文乱码方法 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /v ...

  4. MySql的executeBatch

    jdbc中的executeBatch方法是将此前缓存的多条sql以批量的方式提交给数据库,并在执行成功后以数组的形式获取执行结果.最近我在mysql中尝试使用这个方法,但发现了如下问题. 1.首先第一 ...

  5. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  6. mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...

    本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...

  7. 数据由SqlServer2008转移到MySQL的一个方法

    数据由SqlServer2008转移到MySQL的一个方法 1.将数据从SqlServer导出到Excel文件中,方法http://www.cnblogs.com/hewenwu/p/3684629. ...

  8. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享

    Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...

  9. 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果

    一直很纠结,Oracle的快速返回机制,虽然结果集很多,可是它能很快的显示第一个结果,虽然通过MYSQl的客户端可以做到,但是通过JDBC却不行. 今天用了1个多小时,终于搞定此问题,希望对广大Jav ...

最新文章

  1. 2021年大数据HBase(五):HBase的相关操作JavaAPI方式
  2. linux玩我的世界java版_Linux下安装我的世界(Minecraft)
  3. android 一个字符串分两行显示_重新梳理Android权限管理
  4. opencv 分割边界_电影观众:场景边界分割
  5. [骗分技巧——随机化Ⅰ]CodeChef-Milestones,CF364D-Ghd
  6. 论文浅尝 | 利用类比推理优化知识图谱向量表示
  7. linux 查看主机版本,Linux下如何查看版本信息的方法步骤
  8. 某科学的分支语句 --- switch
  9. 华为否认今年将推出搭载鸿蒙系统手机;苹果或在 3 年内推出 5G 基带芯片;Node.js 12.12.0 发布 | 极客头条...
  10. 【2021牛客暑期多校训练营7】xay loves trees(dfs序,维护根出发的链)
  11. [渝粤教育] 龙岩学院 Web信息系统应用开发 参考 资料
  12. 2.用户画像:方法论与工程化解决方案 --- 数据指标体系
  13. 设计模式-第三篇之工厂方法和抽象工厂
  14. Mobile-Former: Bridging MobileNet and Transformer详解
  15. Android屏幕区域划分及尺寸获取
  16. seaweedfs springboot 文件名乱码
  17. 删除只读属性的文件夹及其子文件
  18. ubuntu 16.04 14.04 安装各种软件
  19. 畜牧养殖物联网:物联网在畜牧养殖中的应用
  20. 微课程学习平台(微课平台)-特色功能(移动学习解决方案)

热门文章

  1. 关于“穿着棉袄洗澡”
  2. html期末大作业美食主题网页源码0006
  3. 清华大学五道口金融学院全日制博士(普博)项目简介
  4. android 日历view,CalendarView
  5. 安卓查看本地sqlite数据库的好用工具
  6. 中国科技馆推出“科技冬奥,逐梦冰雪”主题月活动
  7. 论文写作-题目怎么取
  8. 关闭弹窗广告,远离弹窗烦恼!如何用好360安全卫士、360安全浏览器,以及相关设置?
  9. 08.24python单元测试之unittest
  10. 对批改网的fuzz测试