java事务以及批量更新
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事务以及批量更新相关推荐
- java的mybatis批量更新_mybatis批量更新的问题
一.问题描述 场景描述:有这样一个service方法,调用了两个dao中的方法.第一个方法按照传入的id批量更新用户名.第二个dao方法无数据库操作,仅仅抛出一个RuntimeException. 这 ...
- C# SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据
//此处的程序功能主要是将一个库中的表数据(源表)更新到另外一个库中的表数据(目标表) //实现目标表的数据和源表数据一致,已包括增加,更新和删除数据记录功能 //主调用代码块 SqlConnecti ...
- mysql 批量update sql_批量更新sql |批量update sql
zencart批量更新后台邮箱地址sql zencart批量更新后台邮箱地址sql UPDATE `configuration` SET `configuration_value` = '新邮箱地址' ...
- 扩展tk.mybatis的批量更新的功能
tk.mybatis没有带批量更新的功能,批量更新却是经常使用的,所以需要自己实现. 批量更新网上主要有2种方式:case when方式.foreach方式 但是foreachzhe这种方式效率非常低 ...
- java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新
1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...
- [疯狂Java]JDBC:事务管理、中间点、批量更新
1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...
- JAVA基础知识之JDBC——JDBC事务处理及批量更新
JDBC事务 JDBC的事务由Connection提供,默认是打开的. 要开启事务,则要关闭自动提交, 1 conn.setAutoCommit(false); 提交事务使用 1 conn.commi ...
- java 中batch_java相关:Mybatis中使用updateBatch进行批量更新
java相关:Mybatis中使用updateBatch进行批量更新 发布于 2020-7-13| 复制链接 摘记: 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更 ...
- java sql 批量更新_jdbc实现批量更新
批量更新 1.批量更新优点 批处理:将一组更新语句作为一个单元,同时发送到数据库执行. 批处理有效的降低了应用程序和数据库之间的网络调用,相比单个SQL语句的处理,批处理效率更高. 2.批量更新API ...
最新文章
- go panic recover 异常处理
- 影响数千万APP的安卓APP“寄生兽”漏洞技术分析
- 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件
- 如何通过OpenFace实现人脸识别框架
- kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
- io口模拟串口 1602显示数据位内容[转]
- java当中的定时器的4种使用方式
- 小米手机解锁 usb3.0状态下
- 滴滴如何调度_滴滴智能调度浅析
- VisualAge使用技巧(二)
- 将网页保存为图片--修改
- OpenShift 4 - 在单机版 OpenShift Local 中运行 OpenShift Virtualization(视频)
- 日语基础复习 Day 11
- 单例模式的五种实现形式(懒汉式,饿汉式,双空判断,内部类,枚举)
- 【 失踪人口回归】新·学期
- Qt for Mac中文显示问题
- 军犬舆情热点:诺贝尔颁奖盛典在瑞典举行;多款iPhone禁止销售
- CE修改器的下载、汉化
- Python软件目录结构规范
- win7如何设置共享