一、事务

简单点说,事务就是一件事情。所有与事务相关的内容都是围绕这一件事情展开的。

二、事务的特性:ACID

A:Atomicity(原子性),事务必须是一个不可分割的整体。

C:Consistency(一致性),执行完数据库操作后,数据不会被破坏。如:从 A 账户转账到 B,要保证 A 账户扣钱后,B 账户能增加对应的钱数。

I:Isolation(隔离性),多个人对同一条数据同时进行操作时,若不加以控制,会产生非常大的麻烦。而这个控制就是指隔离性。

D:Durability(持久性),若执行一条 insert 语句,数据库必须保证一条数据永久地存放到数据库中。

事务的 ACID 特性,都是为了保证数据的一致性。隔离性是保证事务一致性的手段。

三、事务的隔离级别(Transanction Isolation Level)

上面说过,事务的隔离性。所说的控制,就是指这里的隔离级别。

(1)READ_UNCOMMITED:读未提交

(2)READ_COMMITED:读已提交

(3)REPEATABLE_READ:可重复读

(4)SERIALIZABLE:

从上往下,并发性越来越差,安全性越来越高。

四、事务中存在的问题

(1)脏读——事务 A 读取了事务 B 未提交的数据,并在这个基础上又做了其他操作。

(2)不可重复读——事务 A 读取了事务 B 已提交的更改数据。

(3)幻读——事务 A 读取事务 B 已提交的新增的数据。

不论是在什么情况下,脏读都是不被允许的。

五、事务的隔离级别与事务中存在的问题的对应关系

其实事务的隔离级别的存在本身就是为了解决事务中出现的问题。

MySQL 默认的隔离级别为 READ_COMMITED。

需要提醒的是,这里所说的事务隔离级别规范是 JDBC 提出来的。

到数据库级,隔离级别是通过锁来控制的,当插入数据时,锁定表,叫“锁表”。当更新数据时,锁定行,叫“锁行”。

六、总结为一张图

java事物 tran_Java基础——事务相关推荐

  1. java 事物 notsupport_Spring事务传播属性介绍(二).mandatory、not_supported、never、supports...

    Required.Required_New传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10259897.html Nested传播属性分析传送 ...

  2. java学习笔记-基础知识-2023.3.29

    学习网站:https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html 刷题网站 牛客网专题-spring java sql 第一章 ...

  3. Java学习---面试基础知识点总结

    Java中sleep和wait的区别 ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类.sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程 ...

  4. Java基于对象基础 基于对象和面向对象的区别(转)

    Java基于对象基础 基于对象和面向对象的区别 JavaScript设计者想把javascript语言设计成基于对象(object-based)的语言,他想把这个与面向对象(object-orient ...

  5. 支撑Java框架的基础技术:泛型,反射,动态代理,cglib

    以Spring为例要想看明白他的源码需要彻底理解Java的一些基础技术泛型,反射同时对于一些高级技术例如动态代理,cglib和字节码技术也需要掌握,下面就按章节来一一说清楚这些技术的核心部分,最后手写 ...

  6. Redis-09Redis的基础事务

    文章目录 概述 Redis 事务命令 Redis 的基础事务 在 Spring 中使用 Redis 事务命令 代码 概述 和其他大部分的 NoSQL 不同,Redis 是存在事务的,尽管它没有数据库那 ...

  7. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

  8. Java数据库篇5——事务

    Java数据库篇5--事务 1.什么是事务 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有 一条SQL出现异常,整个操作就会回滚,整个业务执行失 ...

  9. Java EE开发基础

    Java EE开发基础 软件架构 单机软件:需要安装,不需要联网 B/S架构:Browser/Server(浏览器/服务器),需要网络通信,不需要安装 C/S架构:Client/Server(客户端/ ...

  10. Java开发者XML基础(一)

    Java开发者XML基础(一) 2003年12月5日  作者:StoneGump  Matrix-与Java共舞     Java开发者XML基础,Part 1 原作者:Patrick Niemeye ...

最新文章

  1. 目标检测中的anchor-based 和anchor free
  2. 1.2 什么是神经网络-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  3. HTML5 Web app开发工具Kendo UI Web中Grid网格控件的使用
  4. 学会做“男人”—Linux Man的使用技巧
  5. string.intern_使用String.intern()减少内存使用
  6. 微服务“新秀”之Service Mesh
  7. ORA-29538、ORA-29532、ORA-29913问题解决
  8. 助力南京打造创新名城 第三届未来网络发展大会将召开
  9. 记录.NET Core部署到Linux之.NET Core环境搭建(1)
  10. PHP TCPDF导出订单合同并且每页加一个印章
  11. 拾色器 插件 html,Unity3D 插件开发教程 #3:制作拾色器 ColorPicker
  12. 汽车电器设备与维修【1】
  13. UE4/UE5 python打包Pak和Runtime加载Pak
  14. 婚纱纪实类照片调色思路 教你PS洋气的油画效果
  15. 如何修改PPT文档的编辑版式
  16. 计算机操作中常用的几种快捷方式,常用的30个电脑快捷操作技巧
  17. python 爬取海量网易云评论并写入数据库
  18. 数字图像学笔记——7. 噪音生成(泊松噪音生成方法)
  19. 萧邦主的技术博客导航
  20. Spring Boot 起步依赖

热门文章

  1. Python连接SQLite
  2. 平安夜,Python 送你一顶圣诞帽 @微信官方
  3. Hive语言手册-ORC
  4. apache 伪静态转到nginx
  5. 云智慧悄然“变身”业务运维,到底发生了什么?
  6. 【转】虚拟机检测技术
  7. 摩托罗拉里程碑2刷android 2.3.4
  8. 极光短信验证码JAVA_Android如何集成极光短信验证
  9. wordpress自定义404页面
  10. python logger.debug_python处理logger日志