事务
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。

事务提交
事务的提交是指事务里的所有操作都正常完成。

事务回滚
事务的回滚是指程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。

举例
例如支付宝转账,当我的账户余额支出一部分,那么对方的余额必将增益一部分

作用
确保数据的一致性
比如一个方法中会操作两次数据库,但其中一条数据操作发生错误,那么其中一条就应该回滚,确保数据一致,将程序或数据恢复到上一次正确状态的行为。

事务的特征:
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
1、原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
2、一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
4、持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的e69da5e887aae799bee5baa6e79fa5e9819331333431373330。接下来的其他操作或故障不应该对其有任何影响。

关于事务回滚的处理方法
使用@Transactional注解
@Transactional事务注意事项
1.不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注解可能无效。
2.不要将@Transactional放置在类级的声明中,放在类声明,会使得所有方法都有事务。故@Transactional应该放在方法级别,不需要使用事务的方法,就不要放置事务,否则可能影响性能
3.使用了@Transactional的方法,对同一个类里面的方法调用, @Transactional无效。比如有一个类Test,它的一个方法A,A再调用Test本类的方法B(不管B是否public还是private),但A没有声明注解事务,而B有。则外部调用A之后,B的事务是不会起作用的。(经常在这里出错)
4.使用了@Transactional的方法,只能是public,@Transactional注解的方法都是被外部其他类调用才有效,故只能是public。道理和上面的有关联。故在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错,但事务无效。
5.spring的事务在抛异常的时候会回滚,如果是catch捕获了,事务无效。可以在catch里面加上throw new RuntimeException();

简单的代码实例
@Transactional(propagation=Propagation.REQUIRED)
public void addUser(User user) {
//新增用户
userDao.addUser(user);
//查询所有用户
userDao.selectUser();
}
}
如果插入失败,那么查询则为空。

事务、事务提交、事务回滚相关推荐

  1. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  2. java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...

    详解Java的JDBC API中事务的提交和回滚 如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关 ...

  3. 二十八、事务的提交与回滚演示

    1.创建表 2.查询表中数据 3.开启事务START TRANSACTION; 4.插入数据 5.查看数据 6.修改数据 7.查看数据 8.回滚事务 9.查看数据 自动提交模式 自动提交模式用于决定新 ...

  4. java pg数据库事务回滚,基于Postgresql 事务的提交与回滚解析

    用过oracle或mysql的人都知道在sqlplus或mysql中,做一个dml语句,如果发现做错了,还可以rollback;掉,但在PostgreSQL的psql中,如果执行一个dml,没有先运行 ...

  5. mysql事务的提交和回滚

    START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND ...

  6. mysql 事务实例_mysql实现事务的提交和回滚实例

    mysql创建存储过程的官方语法为: 复制代码 代码如下:START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] R ...

  7. workbench 手动提交事务_mysql实现事务的提交和回滚实例

    mysql创建存储过程的官方语法为: START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] RO ...

  8. mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...

    # ls /usr/local/mysql/bin mysql    mysqladmin    mysqldump    客户端程序 mysqld   mysqld_safe             ...

  9. 事务、提交、回滚、脏读、幻读等名词解释以及事务隔离级别详解

    看视频的时候,听大佬说commit.事务.脏数据等等名词,听的弟弟是一脸懵呀,今天特地搜集.整理出来了这些名词的解释了,下面我们一起看一下. 文章目录 事务:transaction 概念 四个属性(A ...

  10. MySQL中事务的提交和回滚机制

    应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...

最新文章

  1. 面对这些情况,要勇于说“不​”
  2. angularjs源码笔记(3)--injector
  3. jQuery的单引号双引号
  4. Ionic启动时提示:The Angular CLI requires a minimum Node.js version of eithor v10.13 or v12.0
  5. 「 每日一练,快乐水题 」2016. 增量元素之间的最大差值
  6. CF、FM、DSSM、DeepFM等这些推荐模型的原理以及使用场景是什么?
  7. springCloud - 第9篇 - 同步配置文件(消息总线方式)
  8. 【codevs1228】苹果树,哦
  9. 走在网页游戏开发的路上——页游资源管理
  10. GTK测试程序(十四)
  11. WidsMob Viewer Pro Mac如何批量调整照片大小及格式
  12. jmeter 控制偏离_Jmeter 笔记(1)-安装 基本组件
  13. 【笔试面试】75道逻辑推理题及答案
  14. python opencv 边缘检测 抠图,python和opencv实现抠图
  15. python_1.统计字符串中,中文字符,英文字符、数字、空格和其他字符的个数?
  16. 用python,重温小时候猜数字大小游戏
  17. taro开发微信小程序禁止下拉刷新(ios下拉出现空白问题)
  18. 启发式搜索(Informed Search)-贪婪算法GBS+A*算法
  19. CSS3-KeyFrames
  20. vue面试核心,双向数据绑定,数据代理,数据劫持,发布订阅,数据编译,看这个demo就够了

热门文章

  1. javascript取整方法floor、round、ceil
  2. 个人如何获取微信小程序的APPID
  3. 【目标检测无痛涨点篇】SWA:平均多个模型权值
  4. python实现连连看辅助--图像识别延伸(百度AI)
  5. 如何在三维模型中按一定密度提取点云数据(详细说明)
  6. python 拟合圆心_圆的散点拟合, 已知圆的采样点, 求圆的圆心和半径.
  7. wdlinux mysql 日志_mysql,_mysql自动关闭,日志看不懂,希望大神解读下,mysql - phpStudy...
  8. Datawhale 集成学习 Task06:掌握分类问题的评估及超参数调优
  9. 如何通过二维码下载安卓软件(.APK文件)
  10. apple pay集成_如何将Google Pay集成到您现有的Android应用中