Transactions en SQL et annotations @Transaction dans Spring

Transactions en SQL et annotations @Transaction dans Spring

concept:

官方概念:是访问并可能更新各种数据项的一个程序执行单元(unit)

caractéristique:

事务四个特性(ACID)
(1)原子性(事务的步骤集合必须作为一个单一的,不可分割的单元出现。)
(2)一致性(因为这些事务是不可分割的,所以要么执行其全部内容,要么都不执行。)
(3)隔离性(不考虑隔离性问题会产生三个读的问题。可设置为:读已提交;读未提交;可重复读;串行化)
(4)持久性(一旦提交就永久生效,不可回滚。)

Exemple/Scénario :

1:转账: 一个减少一个增加,要么都完成,要么都不完成。
2:多表查询统计:可以通过事务控制将时间拉起到同一时间节点,保证数据的一致性。
3:一个方法中有多个update、delete、insert操作: 可以通过添加事务保证原子性,操作要么同时成功,要么同时失败。

Questions fréquentes sur les entreprises :

不考虑隔离性问题会产生三个读的问题。可设置为:读已提交;读未提交;可重复读;串行化
1:脏读:一个未提交事务读取到另一个未提交的数据。
2:不可重复读:一个未提交事务读取到另一提交事务修改数据
3:幻读(虚读):一个未提交事务读取到另一提交事务添加数据。

可通过设置事务的隔离级别赖解决读的问题:

insérez la description de l'image ici

À propos de l'annotation @Transaction de Spring

@Transaction注解时spring中基于声明式事务管理基于注解的方式。除了可以基于@Transaction注解还可以
基于基于 xml 配置文件方式
即:
															spring事务管理
				声明式事务管理																	   编程式事务管理
xml配置文件方式			注解方式

Spring中的声明式事务管理,底层使用AOP,所以在某些情况下会失效,需要注意!!!

insérez la description de l'image iciParamètres :
1 : comportement de propagation de la transaction de propagation (gérer les appels de méthodes multi-transactions. Il existe des comportements de propagation)
Mécanisme de propagation par défaut REQUIS au printemps, applicable à la plupart des scénarios
2 : ioslation : niveau d'isolation de la transaction
3 : timeout : timeout time
(1) transaction It doit être soumis dans un certain laps de temps. S'il n'est pas soumis, il sera annulé
(2) La valeur par défaut est -1 et le temps de réglage est calculé en secondes
4 : readOnly : lecture seule
(1 ) Lecture : opération de requête, écriture : ajout, modification, suppression Opération
(2) La valeur par défaut de readOnly est false, ce qui signifie qu'elle peut être interrogée et peut être ajoutée, modifiée et supprimée. (3) Définissez
la valeur de readOnly sur true. Après l'avoir défini sur true, vous pouvez uniquement interroger
5 : rollbackFor : Rollback
(1) Définir les exceptions qui se produisent pour effectuer des transactions Rollback
6 : noRollbackFor : no rollback
(1) Définir les exceptions qui se produisent et ne pas effectuer de restauration de transaction

marchandises de contrebande :

	嘿嘿,看看他的本质。spring的事务,也是基于数据库的事务。如果数据库学好了。那么spring的事务这里
就可以直接抓住本质,很好理解,不过是把数据库提供的接口以面向对象的形式展示出来,做了封装和功能增强。
就像是熟悉了http以后,再看springMVC一样。也不过是将http的协议内容封装成了对象来进行操作。如果清楚
了这点,那么只需要熟悉了http,不管是django,flask,springMVC还是别的web框架,都可以很好的去进行
理解学习。
日光底下无新事,
一切都是包装和重演。
嘎嘎嘎。



Je suppose que tu aimes

Origine blog.csdn.net/weixin_43441262/article/details/126824849
conseillé
Classement