java事务以及批量更新

1.概念简介
事务是一步或多部数据库操作序列组成的逻辑单元,这系列操作要么全部执行,要么全部放弃执行。

2.注意
一个事务可以由一组DML组成或者一个DDL语句或者一个DCL语句。DCL和DDL语句最多只能有一个,因为DDL和DCL语句会导致事务立即提交。
3.事务代码示例

Connection conn=DriverManager.getConnection(url,username,password);
Statement stmt=conn.createStatement();
try{
if(conn.getAutoCommit()){//确认事务是否是自动提交
conn.setAutoCommit(false);//关闭事务自动提交
}
stmt.executeUpdate(...);
stmt.executeUpdate(...);
stmt.executeUpdate(...);
conn.commit();}catch{
conn.rollback();//失败回滚
}

4.事务还支持SavePointer配合回滚操作(详细在后面讨论)

5.JDBC批量更新(只支持DDL和DML操作)

5.1语法示例

Statement stmt =conn.createStatement();
stmt.addBatch(sql1);
stmt.addBatch(sql2);
.......
stmt.executeBatch();//返回值是每个DDL或者DML语句执行后返回的int值组成的int数组。

从executeBatch()的返回值可以看出执行每个sql语句的方法是executeUpdate(),而不是execute()方法。

5.2批量更新配合事务使用
说明:
当批量操作有出错时回滚的要求,应该配合事务使用。
思路:

//保存当前自动提交模式
boolean autoCommit=conn.getAutoCommit();
//关闭自动提交
conn.setAutoCommit(false);
//使用statement收集多条sql语句;一次性执行
Statement stmt =conn.createStatement();
stmt.addBatch(sql1);
stmt.addBatch(sql2);
.......
stmt.executeBatch();
//手动提交
conn.commit();
//恢复之前的事务提交模式
conn.setAutoCommit(autoCommit);

ps:代码是直接手敲的没运行,可能少个标点,多个字母什么的。另外有错的话请一定提出!

java事务以及批量更新相关推荐

  1. java的mybatis批量更新_mybatis批量更新的问题

    一.问题描述 场景描述:有这样一个service方法,调用了两个dao中的方法.第一个方法按照传入的id批量更新用户名.第二个dao方法无数据库操作,仅仅抛出一个RuntimeException. 这 ...

  2. C# SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据

    //此处的程序功能主要是将一个库中的表数据(源表)更新到另外一个库中的表数据(目标表) //实现目标表的数据和源表数据一致,已包括增加,更新和删除数据记录功能 //主调用代码块 SqlConnecti ...

  3. mysql 批量update sql_批量更新sql |批量update sql

    zencart批量更新后台邮箱地址sql zencart批量更新后台邮箱地址sql UPDATE `configuration` SET `configuration_value` = '新邮箱地址' ...

  4. 扩展tk.mybatis的批量更新的功能

    tk.mybatis没有带批量更新的功能,批量更新却是经常使用的,所以需要自己实现. 批量更新网上主要有2种方式:case when方式.foreach方式 但是foreachzhe这种方式效率非常低 ...

  5. java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新

    1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...

  6. [疯狂Java]JDBC:事务管理、中间点、批量更新

    1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...

  7. JAVA基础知识之JDBC——JDBC事务处理及批量更新

    JDBC事务 JDBC的事务由Connection提供,默认是打开的. 要开启事务,则要关闭自动提交, 1 conn.setAutoCommit(false); 提交事务使用 1 conn.commi ...

  8. java 中batch_java相关:Mybatis中使用updateBatch进行批量更新

    java相关:Mybatis中使用updateBatch进行批量更新 发布于 2020-7-13| 复制链接 摘记: 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更 ...

  9. java sql 批量更新_jdbc实现批量更新

    批量更新 1.批量更新优点 批处理:将一组更新语句作为一个单元,同时发送到数据库执行. 批处理有效的降低了应用程序和数据库之间的网络调用,相比单个SQL语句的处理,批处理效率更高. 2.批量更新API ...

最新文章

  1. go panic recover 异常处理
  2. 影响数千万APP的安卓APP“寄生兽”漏洞技术分析
  3. 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件
  4. 如何通过OpenFace实现人脸识别框架
  5. kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
  6. io口模拟串口 1602显示数据位内容[转]
  7. java当中的定时器的4种使用方式
  8. 小米手机解锁 usb3.0状态下
  9. 滴滴如何调度_滴滴智能调度浅析
  10. VisualAge使用技巧(二)
  11. 将网页保存为图片--修改
  12. OpenShift 4 - 在单机版 OpenShift Local 中运行 OpenShift Virtualization(视频)
  13. 日语基础复习 Day 11
  14. 单例模式的五种实现形式(懒汉式,饿汉式,双空判断,内部类,枚举)
  15. 【 失踪人口回归】新·学期
  16. Qt for Mac中文显示问题
  17. 军犬舆情热点:诺贝尔颁奖盛典在瑞典举行;多款iPhone禁止销售
  18. CE修改器的下载、汉化
  19. Python软件目录结构规范
  20. win7如何设置共享

热门文章

  1. synchronized的可重入锁
  2. pgsql 时间戳转日期以及日期转时间戳
  3. php合并一维数组,PHP中一维数组的合并与去重的方法
  4. python注释以及中文注释
  5. 凡是函数中未指定存储类型_凡是函数中未指定存储类别的局部变量,其隐含的存储类型是()。...
  6. 风口浪尖的第三方打车软件:叫停还是合作?
  7. Ubuntu系统内核查看
  8. 百度小程序免费制作平台推荐
  9. Webgoat学习笔记
  10. [pycharm]添加环境变量