spring的事务隔离级别,经典Java开发教程

本文探讨了数据库事务的持久性概念,举例说明了事务在JDBC中的应用,详细解释了事务产生的问题和不同隔离级别的作用。此外,还介绍了Spring框架中的隔离级别设置,以及一份针对Java开发者的学习资料,涵盖了从基础到进阶的知识点。
摘要由CSDN通过智能技术生成

⑷ 持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。

事务产生的问题

=====================================================================

场景:同一个事务内(同一个服务内)

| 名称 | 数据的状态 | 实际行为 | 产生原因 |

| — | — | — | — |

| 脏读 | 未提交 | 打算提交但是数据回滚了,读取了提交的数据 | 数据的读取 |

| 不可重复读 | 已提交 | 读取了修改前的数据 | 数据的修改 |

| 幻读 | 已提交 | 读取了插入前的数据 | 数据的插入 |

事务隔离级

===================================================================

| 名称 | 结果 | 脏读 | 不可重复读 | 幻读 |

| — | — | — | — | — |

| Read UnCommitted(读未提交) | 什么都不解决 | √ | √ | √ |

| Read Committed(读提交) | 解决了脏读的问题 | – | √ | √ |

| Repeatable Read(重复读) | (mysql的默认级别)解决了不可重复读 ) | – | – | √ |

| Serializable(序列化) | 解决所有问题 | – | – | – |

  • READ UNCOMMITTED(读未提交数据):允许事务读取未被其他事务提交的变更数据,会出现脏读、不可重复读和幻读问题。

  • READ COMMITTED(读已提交数据):只允许事务读取已经被其他事务提交的变更数据,可避免脏读,仍会出现不可重复读和幻读问题。

  • REPEATABLE READ(可重复读):确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新,可以避免脏读和不可重复读,仍会出现幻读问题。

  • SERIALIZABLE(序列化):确保事务可以从一个表中读取相同的行,在这个事务持续期间,禁止其他事务对该表执行插入、更新和删除操作,可避免所有并发问题,但性能非常低。

Spring隔离级别

int ISOLATION_DEFAULT = -1; 默认采用数据库的隔离级

int ISOLATION_READ_UNCOMMITTED = Connection.TRANSACTION_READ_UNCOMMITTED; //0000 0001 -> 1

int ISOLATION_READ_COMMITTED = Connection.TRANSACTION_READ_COMMITTED; //0000 0010-> 2

int ISOLATION_REPEATABLE_READ = Connection.TRANSACTION_REPEATABLE_READ; //0000 0100-> 4

int ISOLATION_SERIALIZABLE = Connection.TRANSACTION_SERIALIZABLE; // 0000 1000-> 8

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。

image

本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。

image

image

遇到的题目以及有对应的视频解析总结。**

[外链图片转存中…(img-EJ0Mc56K-1711963122957)]

[外链图片转存中…(img-pI3qbVki-1711963122957)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值