Java事务

2023-11-03

事务的ACID

1,原子性:原子性是说将事务看成一个整体,一个不可分割的单位,操作时要么同时成功,要么同时失败。

2,一致性:一致性是指事务的前后数据的完整性保持一致。

3,隔离性:隔离性是指多个用户并发访问数据库时,数据库给每一个用户开启一个事务,一个事务在操作数据时,不能被其他事务所干扰,并发事务之间要相互隔离。

4,持久性:持久性是指事务一旦被提交,那么对数据库的改变将是永久性的。

事务的隔离级别

1,读未提交:另一个事务修改了数据但未提交,本事务中的select会读到这些违背提交的数据,也叫做脏读。

2,读已提交:事务能看到的数据都是其他事务已经提交修改的数据,也就保证不会看到任何中间性的状态,不会出现脏读。

3,可重复读:保证同一个事务中多次读取的数据是一致的。

4,串行:并发事务之间是串行化的,读取需要获取共享读锁,更新需要获取排他写锁,如果有条件语句,还会获取区间锁,这是最高隔离级别。

不考虑事务的隔离级别会产生什么样的问题?

1,并发事务可能会造成脏读,不可重复读,幻读等问题,这些问题实际上都是数据库读一致性问题,必须由数据库提供一定的隔离机制来解决

什么是脏读?

1,脏读就是一个事务在处理过程中读取了另一个事务未提交的数据。

什么是不可重复读?

1,事务A在多次读取同一数据,事务B在数据A多次读取数据的过程中对数据进行了更新并提交,导致事务A前后读取的数据不一致。

什么是幻读?

1,可重复读的隔离级别解决了不可重复读的问题,保证了同一个事务里查询到的数据都是开始时的状态。

Mysql默认的隔离级别是什么?

1,Mysql默认的隔离级别是可重复读。

2,事务的隔离级别要得到底层数据库引擎的支持,而不是应用程序或者框架的支持。

3,事务的隔离级别越高,越能保证数据的完整性和一致性,同时对并发性能的影响也越大。

4,可以优先把数据库的事务隔离级别设置成Read Committed,它能够避免脏读取,并且有较好的并发性能。尽管它会导致不可重复读和幻读问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或者乐观锁来控制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java事务 的相关文章

  • 何时/为何使用/定义接口[重复]

    这个问题在这里已经有答案了 可能的重复 何时最好使用 java 中的接口 https stackoverflow com questions 2586389 when best to use an interface in java Hi
  • Java-线程与CPU的关系

    我对多线程还很陌生 我正在开发一个项目 尝试在我的 Java 程序中使用 4 个 CPU 我想做类似的事情 int numProcessors Runtime getRuntime availableProcessors ExecutorS
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • JavaFX Platform.runLater 的使用以及从不同线程访问 UI

    我有几个问题Platform runLater 我有一个 JavaFX 应用程序类 在这个类中 我运行一个线程 该线程从网络套接字读取数据 现在当我创建一个新的Stage在线程内部 系统抛出异常 JavaFX 事件调度程序线程和我的网络读取
  • 使用 AbstractTableModel 获取 JTable 中选定的行

    我有一个JTable using AbstractTableModel我在哪里有一个JCheckBox在第一列中用于选择行 现在 我需要从已检查的表中获取选定的行 现在 我按顺序从第一行遍历到最后一行并获取所有选择的行 如下所示 List
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • @OneToMany 与 @JoinTable 错误

    我试图理解 OneToMany with JoinTable 对于这样的场景 我正在使用 JPA 2 1 Hibernate 5 0 4 和 Oracle 11 XE 当我打电话时userDao save user 下面的代码 我有 jav
  • 在 TestNG 中运行多个类

    我正在尝试自动化一个场景 其中我想登录一次应用程序 然后进行操作而无需再次重新登录 考虑一下 我有在特定类的 BeforeSuite 方法中登录应用程序的代码 public class TestNGClass1 public static
  • 是否可以从另一个方法传递 args[] 来调用 main 方法?

    我试图从另一个传递参数的方法调用类的主要方法 就像从命令行运行该类时一样 有没有办法做到这一点 您可以致电main方法就像您调用任何其他 静态 方法一样 MyClass main new String arg1 arg2 arg3 Exam
  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • Java:使用 Java.util.concurrent 线程访问读取线程串行端口

    我正在尝试编写一个 Java 串行设备驱动程序并想使用 对我来说是新的 java util concurrent包裹 我有一种发送数据包然后等待 ACK 的方法 我打算有炭 接收在不同的线程中运行 如果接收线程收到 ACK 它应该使用发送数
  • 是否可以为 azure blob 存储中的给定目录生成具有写入权限的 SAS(共享访问签名)

    我们的 blob 存储帐户结构 容器名称 simple 在这个容器内我们有 blob aa one zip aa two zip bb ss zip bb dd zip 是否可以生成对aa 目录 有写权限 但对bb 目录 没有访问权限的SA
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 无法映射 ftl 文件中的 jsonRequest 属性

    我想在 FTL 文件中映射下面的 json 文件市场和子市场字段 但是当我尝试下面的代码时 它没有映射 有人可以帮助我吗 我从 2 天开始就无法映射它 Json请求 ProcessOrderRequest prevalidationMode
  • H2 - (相当)长的 INSERT 失败,错误 42000

    H2 内存中 插入 错误 42000 尝试过版本 1 4 196 1 4 197 1 4 199 我还尝试在 H2 服务器 本地 上执行 INSERT 也失败 给出错误的行 抱歉 但出于安全原因 我无法生成更多 INSERT INTO tb
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below

随机推荐

  • windows进程间通信

    摘 要 随着人们对应用程序的要求越来越高 单进程应用在许多场合已不能满足人们的要求 编写多进程 多线程程序成为现代程序设计的一个重要特点 在多进程程序设计中 进程间的通信是不可避免的 Microsoft Win32 API提供了多种进程间通
  • 引发的异常:“System.BadImageFormatException”(位于 halcondotnet.dll 中)

    System BadImageFormatException 类型的未经处理的异常在 halcondotnet dll 中发生 问题描述 解决办法 问题描述 报错信息如下 System BadImageFormatException 试图加
  • 一篇专题让你秒懂GCD死锁问题!

    一篇专题让你秒懂GCD死锁问题 阐述 1 什么是GCD GCD 全称 Grand Central Dispatch 可翻译为 牛逼的中枢调度器 它是纯C语言的 提供了非常多强大的函数 Grand是宏伟的 极重要的意思 GCD是提供了功能强大
  • 一个VSCode便可以免费画ER图

    为了找到一款好用的er图工具 我基本上把能用的途径都看了个遍 最后 好家伙不是收费就是要下载各式各样 大小不一的软件 下也就算了 还要收费 不收费就限制节点啊什么的 反正搞得是那个上火啊 为了帮助大家闭坑 特意写此博客 其实VScode就可
  • Buffer类的详解(转)

    这篇蚊帐转自 http zachary guo iteye com blog 1457542 作者写的非常好 是我看到的写nio最好的几篇蚊帐 但原文中有一些错误 还有我自己对这方面的一些理解 在这里一并更改了 Buffer 类是 java
  • 2023年交通与智慧城市国际会议(ICoTSC 2023)

    2023年交通与智慧城市国际会议 ICoTSC 2023 重要信息 会议网址 www icotsc org 会议时间 2023年7月28 30日 召开地点 长沙 截稿时间 2023年6月15日 录用通知 投稿后2周内 收录检索 EI Sco
  • ERROR: Failed building wheel for mayavi

    conda虚拟环境中安装mayavi 提示错误 Numpy is required to build Mayavi correctly please install it first ERROR Failed building wheel
  • Java Web快速开发(2~4)Java 基本程序结构、类、继承和接口

    文章目录 二 Java基本程序结构 1 数据类型 2 运算符 3 循环语句 三 类 四 继承和接口 1 多态 2 抽象类 3 接口定义 4 接口增强 5 clone 实现的只是浅拷贝 二 Java基本程序结构 1 数据类型 2 运算符 3
  • Android 全局手势识别原理

    本文是对全局手势识别进行分析 那什么是全局手势呢 简单来说就是在任何界面都需要识别的手势 比如 在任何界面从手机屏幕左侧滑动 当前的界面会退出 类似 back 键 我们知道 在 Android 系统中一个 Activity 在显示时 当对屏
  • 关于程序员35岁的坎:年龄不是挡板,当你匹配了这个年纪该有的能力还有什么畏惧!

    前言 关于程序员干到35岁 会不会失业或者是说35岁的坎 这里我分享一篇不错的文章 希望能给大家带来一些帮助和思考 本文可能可以适用到其他端 不过由于自己是一名 Android 开发工程师 所以就姑且从一名普通的 Android 开发工程师
  • 使用jsp+servlet实现留言板(学习使用)

    1 前端jsp页面 1 1前端总体代码
  • 数据治理体系完整指南(值得收藏)

    01 数据治理之数据资产管理 数据资产与数据资产管理的定义 随着大数据时代的到来 人们已经认识到数据是一种无形的宝贵资产 谷歌 Facebook 阿里巴巴 腾讯等企业市值高达数千亿美元 不仅在于其独特的商业模式和市场垄断地位 更多的估值是给
  • 虚拟服务器转移到实体服务器,虚拟主机转移到云服务器

    虚拟主机转移到云服务器 内容精选 换一换 场景描述绑定到云服务器上 实现云服务器连接公网的目的 搭配服务弹性云服务器ECS或裸金属服务器 虚拟私有云绑定云服务器实例场景描述NAT网关通过与弹性公网IP绑定 可以使多个云主机 弹性云服务器 裸
  • APP内存泄漏导致崩溃测试实践

    内存泄漏崩溃原因 由于程序运行后没有及时回收无用对象 导致系统没有足够内存分配新对象 会引起APP崩溃 Android的GC机制 Android GC机制沿用了java的GC机制 当需要新内存去分配对象的时候而剩余不够的时候 会触发GC 把
  • for循环中,外循环1000、内循环100和外循环100、内循环1000哪个性能更高?

    1 直接上代码 public class Demo public static void main String args System out println firstTime Demo first 毫秒 255毫秒 System ou
  • laravel+element-ui+vue 搭建详细教程

    1 可用composer安装laravel框架项目 composer create project laravel laravel myblog 安装完成进入项目 cd myblog 2 安装前端资源和编译 npm install npm
  • 服务器监控功能(3种方案)

    服务器监控功能 3种方案 一 Actuator监控 1 添加依赖 2 application yaml配置 3 启动项目 访问 二 SpringBoot Admin 单体 1 Admin Server 端 2 Admin Client 端
  • android studio 安装说明

    转自 http www cnblogs com liuhongfeng archive 2015 12 30 5084896 html 1 下载android studio 含SDK版本 http www android studio or
  • node.js buffer的使用场景和方法及stream的应用

    buffer是什么 Node中 应用需要处理网络协议 操作数据库 处理图片 接收上传文件等 在网络流和文件的操作中 还要处理大量二进制数据 JavaScript自有的字符串远远不能满足这些需求 于是Buffer对象应运而生 Buffer作为
  • Java事务

    事务的ACID 1 原子性 原子性是说将事务看成一个整体 一个不可分割的单位 操作时要么同时成功 要么同时失败 2 一致性 一致性是指事务的前后数据的完整性保持一致 3 隔离性 隔离性是指多个用户并发访问数据库时 数据库给每一个用户开启一个