20191125 事务以及隔离级别二

本文深入解析Spring事务管理机制,包括配置式事务、传播行为、事务嵌套及隔离级别的处理,探讨了Spring如何封装数据库事务,以及如何在服务层实现细粒度的事务控制。

Spring的配置式事务可以把多个操作数据库的方法配置在一个事务中。

 

起了一个新事务,就是创建了一个新的数据库连接。

如果方法中全是查询操作 根本没必要使用事务。

只是多了传播行为,只是因为存在方法的调用。根据你的传播行为,是使用同一个会话,还是使用一个新的连接回话。

 

Spring的事务是什么?与数据库的事务是否一样?

本质上其实是同一个概念,spring的事务是对数据库的事务的封装,最后本质的实现还是在数据库,假如数据库不支持事务的话,Spring的事务是没有作用的.数据库的事务说简单就只有开启,回滚和关闭

Spring事务对数据库事务的包装,原理就是拿一个数据连接,根据Spring的事务配置,操作这个数据连接对数据库进行事务开启,回滚或关闭操作.

Spring除了实现这些,还配合spring的传播行为对事务进行了更广泛的管理.其实这里还有个重要的点,那就是事务中涉及的隔离级别,以及spring如何对数据库的隔离级别进行封装.

 

MySql中的事务嵌套

1、Mysql中的事务必须是InnoDB、Berkeley DB引擎,myisam不支持。

2、Mysql是不支持嵌套事务的,开启了一个事务的情况下,再开启一个事务,会隐式的提交上一个事务

3、Mysql默认是autocommit=1,也就是说默认是立即提交,如果想开启事务,先设置autocommit=0,然后用START TRANSACTION、 COMMIT、 ROLLBACK来使用具体的事务。

4、事务控制要成对出现,有开启,必有提交和回滚,如果不匹配导致事务计时器错误,偏离预期的控制效果;

5、事务一般配合try catch异常处理语句一起实现,try包裹的语句体内,如果有错误,应该主动抛出异常,在catch内进行回滚操作,而不能直接在异常处回滚;

 

事务与事务的传播行为。

1、@Transactional 所在的类必须交给Spring管理,否则注解无效

2、单独一个事务方法:方法内的操作同时成功,同时失败。

3、多个事务方法之间,存在事务的传播行为。

 

在service层加入事务控制。

由于@Transactional在Spring中的默认的事务规则是遇到运行异常(RuntimeException)才会进行回滚。如果想针对特殊异常进行事务回滚,可以在@Transactional 注解里使用rollbackFor 属性明确指定异常。比如:

@Transactional(rollbackFor= Exception.class)

 

PROPAGATION_SUPPORTS:

支持当前事务,使用PROPAGATION_SUPPORTS指定,指如果当前存在逻辑事务,就加入到该逻辑事务。

如果当前没有逻辑事务,就以非事务方式执行

 

NotSupported:

不支持事务,如果当前存在事务则暂停该事务。使用PROPAGATION_NOT_SUPPORTED指定,即以非事务方式执行,如果当前存在逻辑事务,就把当前事务暂停,以非事务方式执行。

一句话以非事务的方式,如果有事务,就把事务关闭。

比如excel导入数据,可以以非事务的方式运行。

 

Spring的声明式事务是基于代理模式的。代理模式简单来说就是将另一个类包裹在目标类外面,在调用目标类的方法之前,先经过目标类的方法进行一些处理,返回之前再进行一些处理。

 

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值