一.什么是事务

事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。

事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。

二.事务的 ACID

事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。

1 、原子性

事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做

2 、一致性

事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。

3 、隔离性

一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

4 、持续性

也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。

数据库系统必须维护事务的以下特性 ( 简称 ACID) :

原子性 (Atomicity)

一致性 (Consistency)

隔离性 (Isolation)

持久性 (Durability)

原子性 (Atomicity)

事务中的所有操作要么全部执行,要么都不执行;

如果事务没有原子性的保证,那么在发生系统

故障的情况下,数据库就有可能处于不一致状

二、什么是事务回滚?

一组业务整体处理的行为叫一个事务。这一组的业务都能成功处理,我们就可以把这个事务提交来保存你已做的行为结果。但如果一组中有任何的差错出现的话,我们就认为这事务不成功,需要回滚来撤消之前的操作。

举例:你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,

但可能你这时是已经从你账户中扣了钱了,又没往账户转钱。所以银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态。

java中事务回滚吗_事务回滚 - 小虾米的java梦 - 博客园相关推荐

  1. Java中的匿名函数格式_「创作开运礼」Java之Lambda表达式的省略格式

    各位小伙伴们大家好,在之前的文章中小编介绍了使用Lambda表达式来省略匿名内部类当中,一些不必要的代码,这次小编要介绍的是Lambda表达式的省略格式,这种格式下代码更加简单,具体如下: Lambd ...

  2. java求数组中满足给定和的数对_关于数组的几道面试题 - zdd - 博客园

    2011年2月15日更新,加入找出绝对值最小的元素一题 数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论.目前有以下1 ...

  3. java中getDelta是什么意思_什么Delta编码/压缩算法库有Java?

    我知道这是一个非常古老的问题,但是我决定在这里发布这个,只是让其他人绊倒在同一个问题上. 这就是我目前使用的.这非常简单,效果很好. 您需要确保校验源,但(在我的情况fileAJson),因为它不会自 ...

  4. Java中String对象的replaceAll方法调用性能优化小技巧

    Java中String对象的replaceAll方法调用性能优化小技巧 0x01 Java中String对象的replaceAll方法调用性能优化小技巧 1.1 What? 1.2 Why? 1.3 ...

  5. java爬虫之爬取博客园推荐文章列表

    这几天学习了一下Java爬虫的知识,分享并记录一下: 写一个可以爬取博客园十天推荐排行的文章列表 通过浏览器查看下一页点击请求,可以发现 在点击下一页的时候是执行的 post请求,请求地址为 http ...

  6. java中oops是什么意思_什么是oop思想_什么是OOPS

    什么是oop思想 OOPS is a programming approach which provides solution to real life problems with the help ...

  7. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  8. android java代码加密,Android中AES256加密的实现 – Leo Chin – 博客园

    AES加密是我们在工作中常用到一种加密方式,并且在java中也已经实现好了其相应的接口. 但是Java自带的JDK默认最多实现128位及其以下的加密.如果使用java自带的api实现aes256将会报 ...

  9. webbrowser中localhost和发布的地址_发布一款android版博客园官方app

    1.前言 博客园创立于2004年1月,是一个面向开发者的知识分享社区.自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益 ...

  10. java输出当前时间_JAVA中获取当前系统时间 - Matrix54 - 博客园

    JAVA中获取当前系统时间 - Matrix54 - 博客园 一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleD ...

最新文章

  1. shell test和find命令实例解析
  2. LeetCode-80: 删除排序数组中的重复项 II
  3. VTK修炼之道53:图形基本操作进阶_多分辨率策略(模型细化的三种方法)
  4. UCOSIII移植问题说明
  5. OpenGL Shader Key Points (3)
  6. 使用GPUImage实现视频滤镜
  7. Dynamips结合VMware搭建站点到站点×××环境
  8. JavaScript 实现 GriwView 单列全选
  9. tcp连接工具_基于Swoole如何搭建TCP服务,你掌握了吗?
  10. springboot http status 404 – not found_使用枚举简单封装一个优雅的 Spring Boot 全局异常处理!...
  11. Spring强制使用CGLIB代理事务
  12. AOP处理事务静、动态代理(jdk方法)
  13. Type Cast的翻译,强转不如造型
  14. 计算机算法设计与分析第四版在线,计算机算法设计与分析(第4版) 王晓东习题解答计算机算法设计与分析(第4版) 王晓东习题解答.pdf...
  15. OCR身份证识别免费试用,附带Java代码
  16. 服务器双系统怎么选择启动不了,Win7/Win10双系统开机时不显示系统选择菜单怎么办...
  17. c++直方图匹配终极版,支持任意通道数(opencv版本)
  18. phython基础之数据类型和变量
  19. 搜狗推微信公众平台搜索 可搜公众号与文章
  20. typora 配置 smms 图床

热门文章

  1. BootStrap左侧菜单栏
  2. [轻笔记]Juliav0.6配置jupyter
  3. MySQL Server 5.7.13
  4. arduino入门-用arduino uno制作基于蓝牙的数据监控系统
  5. Windows下主机名和IP映射设置
  6. 文献 | 柳叶刀发文:虚拟现实的新用途之治疗场所恐惧症
  7. android手机碎片管理,安卓手机如何进行系统碎片整理
  8. 做数据建模有哪些工具是值得推荐的?
  9. 不良资产证券化信披 担任怎样的角色
  10. Linux定时任务的基础操作