一、什么是Java事务

通常的观念认为,事务仅与数据库相关。

事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。

通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。

既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系?

实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。

二、为什么需要事务

事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。具一个简单例子:比如银行转帐业务,账户A要将自己账户上的1000元转到B账户下面,A账户余额首先要减去1000元,然后B账户要增加1000元。假如在中间网络出现了问题,A账户减去1000元已经结束,B因为网络中断而操作失败,那么整个业务失败,必须做出控制,要求A账户转帐业务撤销。这才能保证业务的正确性,完成这个操走就需要事务,将A账户资金减少和B账户资金增加方到一个事务里面,要么全部执行成功,要么操作全部撤销,这样就保持了数据的安全性。

面试题:什么是事务,怎么理解事务?相关推荐

  1. 详解 MyBatis 事务管理,彻底颠覆你对事务的理解!

    来源:https://my.oschina.net/zudajun/blog/666764 前言 说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性.四大隔离级别.七大传播特性.四大还好说 ...

  2. MyBatis事务管理解析:颠覆你心中对事务的理解

    MyBatis事务管理解析:颠覆你心中对事务的理解! 1 .说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性.四大隔离级别.七大传播特性. 四大还好说,问题是七大传播特性是哪儿来的?是S ...

  3. Mybatis:颠覆你心中对事务的理解

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:祖大俊 my.oschina.net/zudajun/blo ...

  4. 分布式事务不理解?一次给你讲清楚!

    支付重构 考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理.拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分,拆分成订单服务,账户服 ...

  5. 事务ACID理解复习

    谈到事务一般都是以下四点 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性(Consistency) 事务前后数据的完整性必须保持一 ...

  6. InnoDB---深入理解事务提交--02

    http://blog.163.com/li_hx/blog/static/1839914132016113082917923/ 三 为什么说InnoDB不符合WAL预写日志机制? 在标题二中我们提出 ...

  7. 理解事务四大特性(Transaction)——原子性、一致性、隔离性和持久性(ACID)

    事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下: 1. 原子性(Atomic) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. ...

  8. mysql事务的理解学习, 面试不问索引原理就是事务原理

    目录 事务理解 事务组成 事务特征 常见事务的控制语句 事务的ACID特征 原子性  (可借助多线程对全局数据做写入操作哪里的理解)  绑定操作单元 隔离性 持久性  (先写日志再写磁盘, 高效) 一 ...

  9. 【详谈 Delta Lake】系列专题 之 基础和性能 - 02 深入理解事务日志 / 如何使用Schema约束和演变...

    译者 韩宗泽(棕泽),阿里云计算平台事业部技术专家,负责开源大数据生态企业团队的研发工作 前言 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 系列技术文章.众所周知 ...

  10. Mysql的分布式事务原理理解

    本文主要讲解:Mysql的分布式事务原理及中间会遇见的问题 目录 一.事务的特性与类型 二.本地事务 三.并发事务带来的问题 四.事务隔离级别 五.各种类型的锁 六.死锁问题 七.MVCC机制 八.R ...

最新文章

  1. 整个领域没了!学术界有史以来最大的丑闻
  2. python零基础看什么视频和书籍-资料│最适合大学生零基础学的Python视频+电子书...
  3. 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)
  4. php 快递查询,PHP查询快递信息
  5. php判断是否为数字_PHP将英文数字转换为阿拉伯数字
  6. python flask框架剖析_python flask框架实现传数据到js的方法分析
  7. 计算机二级web题目(3)--HTML基础
  8. ACM国际编程大赛夺冠,李现和他的队员们一定把这8本书翻烂了
  9. ios app被自己从应用商店下架后可以再恢復上架吗
  10. 阿里云,并不是比谁聪明,而是更早面临那些疼痛
  11. mysql left join_对比MySQL,教你在Pandas中实现SQL常用操作!
  12. CS231n李飞飞计算机视觉 卷积神经网络详解上
  13. 海康visionmaster-软加密
  14. Java环境变量配置与adb环境变量配置
  15. Docker与微服务实战(入门)
  16. “找不到服务器ip地址”已解决,原因是DNS配置问题。
  17. 计算机考试的知识要记忆背,2019年3月计算机等级考试这样复习才更有效率
  18. 他晒了一张奶酪照片,被判入狱13年半
  19. 从开始到验收:我做外包项目测试的经验总结
  20. Vue keyframe动画不生效

热门文章

  1. 前端开发学习常用网站网址及api接口(都是免费的)
  2. ubuntu安装sogou中文输入法
  3. 【英语流利说】数据分析师笔试+二面经验
  4. vue源码学习(八)patch
  5. 东北之行(七)――东北那旮儿的人
  6. Noah的学习笔记之Python篇:装饰器
  7. 黄河三角洲近40年来面积变化遥感监测提取
  8. JavaScript 时间戳
  9. linux系统中如何退出vim编辑模式
  10. 解密Redis事务(redis事务有没有原子性)