Spring的事务管理(特性、核心接口(1),2024年最新有关web的毕业设计题目

一致性是指事务将数据库从一种状态转变为下一种一致的状态

隔离性

隔离性还可以被称为并发控制、可串行化,锁等,当多个用户并发访问数据库时,数据库为每个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

持久性

事务一旦提交,其所做的修改就会被永久保存在数据库中,即使数据库发生故障也不应该对其有任何影响。事务的持久性不能做到100%的持久,只能从事务本身的角度来保证永久性。


什么是Spring的事务管理

在这里插入图片描述


事务管理的核心接口

在Spring的所有JAR包中,包含一个名为spring-tx-4.3.6.RELEASE的JAR包,

该包就是Spring提供的用于事务管理的依赖包。

在该JAR包的org.springframework.transaction包中,有3个接口文件

PlatformTransactionManager、TransactionDefinition和TransactionStatus,如下图所示:

在这里插入图片描述


Plaform Transactionmanager

Platform TransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务。该接口提供了三个事务操作的方法,如下

在这里插入图片描述


在这里插入图片描述


TransactionDefinition

TransactionDefinition接口是事务定义的对象,该对象中定义了事务规则,并提供了获取事务相关信息的方法,具体如下

在这里插入图片描述


TransactionStatus

TransactionStatus接口是事务的状态,它描述了某个时间点上事务的状态信息。具体如下:

在这里插入图片描述


事务的并发问题

在实际应用过程中,数据库是要被多个用户所同时访问的。在多个事务同时使用相同数据时,可能会出现并发问题,具体如下:

在这里插入图片描述


事务的隔离级别

为了避免事务并发问题的发生,在标准SQL规范中,定义了4个隔离级别,不同的隔离级别对事务的处理不同。

  • 读未提交(一级)

一个事务在执行过程中,既可以访问其他事务未提交的新插入的数据,又可以访问未提交的修改数据。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。此隔离级别可防止丢失更新。

  • 读已提交(二级)

一个事务在执行过程中,既可以访问其他事务成功提交的新插入的数据,又可以访问成功修改的数据。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。此隔离级别可有效防止脏读。

  • 可重复读(三级)

一个事务在执行过程中,可以访问其他事务成功提交的新插入的数据,但不可以访问成功修改的数据。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。此隔离级别可有效的防止不可重复读和脏读。

  • 序列化(四级)

提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。此隔离级别可有效的防止脏读、不可重复读和幻读。

  • 注意:

注意:虽然事务的隔离级别越高,越能保证数据库的完整性和一致性,但并发时越高的级别对性能的影响也越大。在实际开发中,通常将数据库的隔离级别设置为2级,即Read Committed。它既能防止脏读,又有良好的并发性。虽然这种隔离级别会导致不可重复读、幻读和第二类丢失更新问题,但这些问题可以通过在应用程序中使用悲观锁和乐观锁来控制。


事务的传播行为

上述方法中,事务的传播行为是指在同一个方法中,不同操作前后所使用的事务。传播行为有很多种,具体如下表所示:

在这里插入图片描述


声明式事务管理


在这里插入图片描述


  • 如何实现Spring的声明式事务管理?

Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。

基于XML方式的声明式事务

在这里插入图片描述


实例
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:aop=“http://www.springframework.org/schema/aop”

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:tx=“http://www.springframework.org/schema/tx”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

">

<context:component-scan base-package=“cn.*”/>

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

深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
img
img
img

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
img

1712536834435)]
[外链图片转存中…(img-WqDMxwh3-1712536834435)]
[外链图片转存中…(img-xawwWiIJ-1712536834435)]

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-GWjGWse1-1712536834436)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值