初识---事务管理

何为“ 事务管理 ”?

   “事务”是一个逻辑单元,其中包含一系列的操作,事务遵循4个基本特性(ACID):

  • Atomic(原子性,此处指的是事务中的各个操作不可分割)

事务中包含的操作被看作是一个逻辑单元,这个单元中的操作要么全部成功,要么就全部失败;

  • Consistency(一致性)

意味着:只有合法的数据可以被写入数据库,如果数据有任何不符合要求的,则事务应该将其会滚到最初状态;

  • Isolation(隔离性)

允许多个用户对同一数据的并发访问,而不破坏数据的正确性和完整性,同时,并行事务的修改必须与其他并行事务的修改相互独立;可以这样理解,一个事务的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能够看到其他事务正在修改的数据;

  • Durability(持久性)

事务结束后,事务必须要得到固化(将其存储到数据库里,或保存到某硬件设备里);

 

 

何为“ 数据库事务管理隔离等级 ”?

   事务隔离指的是:数据库(或其他事务系统)通过某种机制,在并行的多个事务之间进行分隔,使每个事务在其执行过程中保持独立;

 

   Hibernate中的事务隔离依赖于底层数据库提供的事务隔离机制,因此对数据库事务隔离机制的理解在基于Hibernate实现的持久层中同样适用;

 

数据操作过程中可能出现的3种不确定情况:

 

脏读取(Dirty Reads) :一个事务读取了另一个事务为提交的数据;

不可重复读取(Non-repeatable Reads) :一个事务再次读取之前曾读取过的数据时,发现该数据已经被另一个已提交的事务修改;

虚读(Phantom Reads) :一个事务重新执行一个查询,返回一套符合查询条件的记录,但这些记录中包含了因为其他最近提交的事务而产生的新记录;

 

为了避免上面3中情况发生,标准的SQL规范中,定义了4个事务隔离等级;

 

Read Uncommitted:

   最低等级的事务隔离,仅仅保证了读取数据中不会读到非法数据,这种等级下,上述的不确定情况均可能发生;(很容易出现脏读取);

Read Commited:

   此级别的事务隔离保证一个事务不会读到另一个并行事务已修改但未提交的数据,此等级已经避免了脏读取的情况;(当一个事务处于在此隔离等级中,一个Select查询只能看到查询开始之前提交的数据,永远看不到为提交的数据,或者运行时提交的数据);

Repeatable Read:

   此级别的事务隔离避免了“脏读取”和“不可重复读取”现象的出现,意味着:一个事务不可能更新已经由另一个事务读取但未提交的(回滚)的数据;[一般情况下,此级事务应用并不广泛,不能保证数据的合法性(可能会出现虚读),但是性能代价较大,如果当前数据库由应用所独享,可以考虑用“乐观锁”达到同样的目的];

Serializable:

   最高登记的事务隔离级别,提供了最严格的隔离机制,上面的3种情况都将会避免掉,这个级别模拟事务的串行执行,逻辑上如同所有事务都处于一个执行队列,依次串行执行,而非并行执行;[此事务隔离级别提供了最严密的隔离机制,但是同时也带来了高昂的性能开销,需谨慎使用,如果需要,可以通过“悲观锁”来解决];

 

隔离等级脏读取不可重复读取虚读
Read Uncommitted可能可能可能
Read Commited不可能可能可能
Repeatable Read不可能不可能可能
Serializable不可能不可能不可能

 

CLion与STM32CubeMX联调:JLink GDB Server高效调试指南 本文详细介绍了如何搭建并配置CLion、STM32CubeMX与JLink GDB Server联调的现代化STM32开发环境。通过一站式环境搭建、工程创建、核心调试配置及高级技巧(如RTT日志),该组合实现了高效的代码编辑、可视化配置与稳定调试,大幅提升嵌入式开发效率与体验。 阅读详情

相关推荐

HPE磁盘阵列管理04——MSA事件

本文介绍了HPE MSA存储系统的事件处理机制,重点分析了常见磁盘故障事件及其解决方案。文章首先定义了MSA事件的五个严重级别(严重、错误、警告、信息和解决),然后详细列举了多个典型事件案例(如事件1、3、6、8、172等),包括每种事件的触发条件、对系统的影响以及具体修复步骤。针对磁盘故障场景,文章提供了更换磁盘、重建磁盘组、取消隔离等操作建议,并强调应及时配置备用磁盘以降低数据风险。最后指出更详细的事件说明可参考《MSA事件描述参考指南》,并提供了HPE官方手册下载链接。全文为技术人员处理MSA存储故障

istrangeboy&begin zero的博客 1121

Spring之初识事务管理

Spring之初识事务管理,认识什么事务,为什么需要事务管理,以及事务的作用。

积跬步,至千里。 280

【Gin框架入门到精通系列01】Gin框架介绍与环境搭建

本文是Gin框架入门到精通系列的第一篇,系统介绍Gin框架的基本概念、核心特性以及环境搭建。无论你是Go语言新手还是有经验的开发者,都能通过本文快速掌握Gin框架的基础知识,创建并运行你的第一个Gin应用。

GopherTribe的博客 1560

【spring】事务管理之初识

数据并发会出现什么问题?脏读、不可重复读、幻想读等。为了解决这个问题。我们可以用事务,用于确保数据的完整性和一致性。 事务的4个特点; 1 原子性 确定动作要不全部执行,要不都不执行 2 一致性 当事务完成的时候,必须确保数据是一致性的,不能部分完成部分失败 3 隔离性 每一个事务和事务之间是隔离的 4 持久性 一旦事务完成,无论发生了什么,结果都不会在收到影响了

飞翔的肥仔 630

【脑电分析系列】第15篇:脑电功能连接性与脑网络分析(二):Granger因果性、图论指标与复杂网络构建

摘要: 本文深入探讨了脑电(EEG)分析中的高阶连接性方法——有效连接(Effective Connectivity),重点介绍了Granger因果性(Granger Causality, GC)的原理与应用。GC通过统计预测揭示脑区间信息流动方向,超越了传统功能连接的同步性分析。文章还结合图论指标(如度、路径长度、聚类系数和模块化)量化脑网络的拓扑结构,并通过Python代码(MNE和NetworkX库)演示了从EEG数据构建、分析复杂脑网络的完整流程。该研究为理解大脑动态互动、认知任务信息流及神经系统疾

qq_32516809的博客 1563

光纤接口类型与应用场景全解析

本文全面解析了光纤接口的类型与应用场景,详细介绍了SC、LC、FC和ST等主流光纤接口的特点及适用环境。从数据中心的高密度布线到工业环境的极端条件,提供了专业的接口选型指南和实战经验,帮助读者根据具体需求选择最合适的光纤接口方案。

weixin_29289821的博客 411

初识Spring事务管理

事务:就是一系列的动作,被当成一个工作单元,要么全部提交,要么全部回滚。 声明式事务管理(基于注解的方式):配置事务管理器,启用事务注解,在对应的方法上加上@Transaction注解 事务的传播行为:propagation 可取值:required(默认),required_new 事务的隔离行为 下面是对事务进行简单了解的代码: 数据库对应表: BookShopDao package...

qq_43356439的博客 744

通达信抓波段指标(主图)

VAR3:=IF(INBLOCK('科创板'),VART20,IF(INBLOCK('创业板') AND DATE>1200823,VART20,IF(INBLOCK('ST板块'),VART5,VART10)));VAR5:=IF(INBLOCK('科创板'),CT20,IF(INBLOCK('创业板') AND DATE>1200823,CT20,IF(INBLOCK('ST板块'),CT5,CT10)));曾涨停/紫色细K线:青字"炸",涨停未封住。曾跌停/蓝色细K线:红字"撬",跌停被打开。

q125500612的博客 2135

初识事务管理

u下午 4:04 2016/8/22 星期一事务管理是企业级应用程序开发中必不可少的技术,用来确保一组操作的时候 数据的完整性和一致性 技术委员 没钱了 班长----2000 班长 --- 赚钱 (1:从班长的卡里扣钱 2:给技术组长的卡里增钱) 2000 10 例如去银行存款转账张三给李四转钱,这个过程就是我们所说的一个事物 一...

weixin_30512089的博客 84

【Windows Server 2019】组策略的配置与管理——理论基础

博文介绍了组策略的定义,作用和分类。组策略包括计算机配置和用户配置;组策略又分为为基于本地的组策略和基于AD(活动目录)的域组策略。并说明了不同组策略发生冲突时默认的规则。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

Jetson AGX Orin和Drive AGX Orin相机的关联分析和编程指南

通过适当的相机接口和连接,以及使用适当的软件开发环境,开发人员可以在这些平台上实现相机功能。Jetson AGX Orin和Drive AGX Orin是NVIDIA推出的两款强大的计算平台,用于自动驾驶和人工智能应用。Jetson AGX Orin和Drive AGX Orin平台提供了强大的计算能力,使开发人员能够实现复杂的相机功能和算法。以上只是一些示例,Jetson AGX Orin和Drive AGX Orin平台提供了丰富的开发资源和工具,可用于实现各种复杂的相机应用。显示图像在一个窗口中。

CyberLynxO的博客 1121

初识HQL事务管理

HQL事务管理的初步运用。

小康子的博客 873

42、Windows Server Update Services(WSUS)全面指南

本文全面介绍了Windows Server Update Services(WSUS)的安装、配置、管理与优化策略。内容涵盖WSUS基础认知、客户端更新问题解决、多服务器架构设计、计算机分组策略、更新审批与报告查看,并深入探讨了SSL加密配置、性能优化、与其他系统(如AD和SCCM)集成以及常见故障排查方法。通过本指南,IT管理员可高效部署和管理企业级软件更新,提升安全性和运维效率。

cicd6pipeline的博客 98

Spring框架(Spring事务管理初识)

目录,更新ing,学习Java的点滴记录   目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录 Spring知识 第一篇---->初识Spring 第二篇---->深入SpringIoC容器(一) 第三篇---->深入SpringIoC容器(二) 第四篇---->依赖注入的方式 第五篇---->基于xml装配Bean 第六篇---->基于注解装配Bean 第七篇---->Spring Bean之间的关系 第八篇---->Spr

qq_41649001的博客 963

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

初识Spring+AspectJ+spring之事务管理

一、初识Spring 1.Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 EE的三层结构:web层、业务层、数据访问层(持久层,集成层) 2.Spring的核心:IOC(控制反转)、AOP(面向切面编程) 3.学习Spring需要的入门准备(①下载Spring开发包②创建web工程引入相应的jar包③创建Spring配置文件④在配置中配置类...

Longzhu21的博客 746

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring+mybatis之声明式事务管理初识(小实例)

spring+mybatis之声明式事务管理初识(小实例) 前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理   理解事务管理之前,先通过一个例子讲一下什么是事务管理:取钱。比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉10...

weixin_30262255的博客 266

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

spring+mybatis之注解式事务管理初识(小实例)

1.上一章,我们谈到了spring+mybatis声明式事务管理,我们在文章末尾提到,在实际项目中,用得更多的是注解式事务管理,这一章将学习一下注解式事务管理的有关知识.注解式事务管理只需要在上一节的小实例上更改两个文件就好:   (1)更改spring配置文件applicationContext.xml:    <?xml version="1.0" encoding="UTF-...

weixin_30433075的博客 73

微服务事务管理(分布式事务问题 理论基础 初识Seata XA模式 AT模式 )

分布式事务问题。

qq_52897007的博客 1317

MySQL数据库基础

我相信,在未来的学习和工作中,我会继续运用MySQL进行数据库设计、数据查询和优化等工作,并不断地提升自己的技能水平和解决问题的能力。通过这段时间的学习,我对MySQL有了更深刻的理解和认识,以下是我对MySQL数据库基础学习的一些心得体会。MySQL的开源特性让我对它产生了浓厚的兴趣,因为这意味着我可以免费地使用它,并且可以根据自己的需求进行定制和优化。其中,使用合适的索引是最常用的优化手段之一。对于我个人而言,我也将继续深入学习MySQL的高级特性和应用场景,不断提高自己的技能水平和解决问题的能力。

zaxw0616的博客 841

MongDb从入门到精通

11

m0_56057949的博客 2701

关于方法事务性的记录

    写在开篇,接下去说的和“实际的使用方式”以及“具体解决方案”均无关系,只是自己的吐槽     在日常工作中,“方法事务”是逃不掉的一个坎,也是比较难处理的一个问题,因为它会随着你编码水平的提高而变的更加复杂。     1.简单事务     不知道大家还记不记得在职业生涯的开端,当第一次听到“事务”这个词的时候是怎么样的一番心情?我当时是觉得这个东西好像蛮厉害的,竟然能够这么做。然后就...

vane11的博客 315

Spring AOP 最全入门教程【新手向】

初识 AOP(传统程序) Tips:如果想要快速查阅的朋友,可以直接跳转到 初识AOP(Spring 程序)这一大节 (一) AOP 术语 (二) AOP 入门案例:XML 、注解方式 (三) 完全基于 Spring 的事务控制:XML、注解方式、纯注解方式 (一) AOP的简单分析介绍 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预...

理想二旬不止 - 专注JAVA技术 1416

美年旅游项目自记录Day01

一、技术栈Dubbo学习 软件架构演变,单体架构——>垂直架构——>SOA架构——>微服务架构 单体架构(all in one):一个归档包(war, jar)包含了应用所有功能的应用程序,我们通常称之为单体应用,架构单体应用的方法论,为单体应用架构。开发成本低,周期短,适合小型项目,但代码耦合度高,代码量逐渐增多(外包屎山警告),扩展难,不易维护。 垂直架构:按照业务的维度进行功能的划分,形成小的单体项目,即单体与单体之间垂直划分,而单体内又可进行水平划分(表现层,业务逻辑层,..

m0_49575554的博客 1158

Fragment初识

Fragment翻译为碎片、片段;Android3.0引入进来的,是一种分解activity显示的组件 一、简介 1.当一个activity内容太多时,界面的切换会很不流畅,用fragment把activity'切碎'后可以提高流 畅度,适用不同的屏幕尺寸,而且每个fragment都有自己的生命周期 2.fragment使用比较灵活,即以类的形式

狂奔的蜗牛 615

mybatis 关闭自动提交事务_SpringMVC+Mybatis企业应用实战 学习笔记(五)

文件上传、下载,登录拦截的内容我没有挖啥内容,请见书和ppt啦~接下来是第九章Mybatis 初识MyBatisMyBatis映射文件UserMapper.xml超详细Mybatis入门讲解【报错】彻底解决mybatis 插入数据中文后显示问号(?)的问题【报错】对实体 "mybatis: characterEncoding" 的引用必须以 ';' 分隔符结尾 xml 其实上面两个,加上设置...

weixin_39664560的博客 550

简易式SSM整合(IDEA)

SSM项目简易整合。

萧何的博客 939
上一篇: Hibernate之缓存同步策略
下一篇: Hibernate之事务管理
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值