spring的事物管理的认知
事物
它是一个原子操作要么全部不执行,要么全部执行成功,如果有一个失败也会撤销,它保证用户每一次的操作都是可靠的,即使时出现了错误也不至于破坏数据的完整性
它包含了四种特性:
原子性:保证事物要么全部执行,要么全部不执行。
一致性:保证了数据的一致性。
持久性:事物的操作的数据会存储到数据库中是永久保存的。
隔离性:同样的事物操作相同的数据它们是相互隔离的。
实现事物的方式
编程式:
在你的idea里面创建好一个项目完成实体类包和mapper包以及service包等。
完成以上的前置工作后,在你的service包里面添加一个impl实现包也就是需要实现service里面的接口方法,mapper里面的方法也是接口类型的。
在service包下的impl也就是实现包里面写上实现类,在理导入TransactionTemplate,在将你的mapper注入进来,完成数据库的增删查改操作。(也可以使用PlatformTransactionManager事物管理器代替TransactionTemplate具体看个人,这里使用的是TransactionTemplate)。
定义一个新增方法:
它有两中事物的返回方式,一种是没有返回值,另一种是有一个返回值
没有返回值的:

那个参数status是事物的状态,可以通过它来得知事物的状态

设置事物并调用你导入的mapper进行添加操作完成事物,可以主动抛出异常查看事物的状态。
没有返回值的:

那个tx参数是代表事物的,在执行一个事物的操作,返回一个true也就是给我们事物的返回值,事物是不会对我们的返回值有影响,只有出现的异常才会有影响的。
声明式:
在你的方法上面添加一个注解@Transactional

propagation:事物传播性
rollbackFor:默认不回滚,需要自己配置

@Transactional注解里面表示它不仅仅可以添加到方法上面还可以添加到类上面,在类上面的时候是表示这个类里面的方法都执行相同的事物,但如果方法上面也有这个注解这安装方法上面的注解进行使用,一般不建议配置在类上
一些常用的参数:
value:设置bean的名称
transactionManager:与value意思一致
isolation:事物隔离状态
timeout:超时时间
readOnly:是否开启只读事物默认false
控制回滚的方式:

事物失效

这里显示我们事物抛出了异常但被catch了所以不会抛出,也不会回滚。

这个是表示我们抛出的异常但并不会回滚,因为SQLException继承与Exception,只有运行错误或者编译异常才会提示,需要在上面的注解里面添加rollbackFor。

如果方法修饰符使用了private的话也不可以使用,事物不可以直接获取非public的方法。
这种也不会生效因为这里发生的自身调用,只有在外部调用才会生效
相关文章:
spring的事物管理的认知
事物 它是一个原子操作要么全部不执行,要么全部执行成功,如果有一个失败也会撤销,它保证用户每一次的操作都是可靠的,即使时出现了错误也不至于破坏数据的完整性 它包含了四种特性: 原子性:保证事物要么…...
麒麟LINUX V10SP3 2401安装ORACLE 12.2.1 runInstaller直接报UNZIP格式不对
好久没有安装ORACLE了,一般都是RHEL上安装得比较多,这不,现在大家都是选择国产操作系统来安装数据库了,以前在龙蜥,欧拉,麒麟上也安装过,都没有问题,想来在麒麟LINUX v10sp3 2401上面…...
华为HuaweiCloudStack(一)介绍与架构
本文简单介绍了华为HCS私有云解决方案,并从下至上介绍HCS的整体架构,部署架构、部署方式等内容。 目录 HCS简介 HCS架构 纵向结构 ?管理平台类型 HCS节点类型 FusionSphere OpenStack CPS ServiceOM SC 运营面 OC 运维面 HCS部署架构 regi…...
微服务学习:基础理论
一、微服务和应用现代化 1、时代的浪潮,企业的机遇和挑战 在互联网化数字化智能化全球化的当今社会,IT行业也面临新的挑战: 【快】业务需求如“滔滔江水连绵不绝”,企业需要更快的交付【变】林子大了,百色用户&…...
C++实现设计模式---迭代器模式 (Iterator)
迭代器模式 (Iterator) 迭代器模式 是一种行为型设计模式,它提供了一种方法,顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 意图 提供一种方法,可以顺序访问一个容器对象中的元素,而无需暴露其…...
海康工业相机的应用部署不是简简单单!?
作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 笔者使用的设备及环境:WSL2-Ubuntu22.04MV-CS016-10UC 不会吧?不会吧?不会还有人拿到海康工业相机还是一脸懵叭?不会还有人…...
Windows电脑安装File Browser与cpolar轻松搭建本地云盘
文章目录 前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 无论是个人用户还是企业团队,都希望能够有一个高效、安全的解决方案来…...
mac配置 iTerm2 使用lrzsz与服务器传输文件
mac配置 1. 安装支持rz和sz命令的lrzsz brew install lrzsz2. 下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh两个脚本 # 克隆仓库 git clone https://github.com/aikuyun/iterm2-zmodem ~/iterm2-zmodem# 进入到仓库目录 cd ~/iterm2-zmodem# 设置脚本文件可执行权限 c…...
【HBuilderX 中 Git 的使用】
目录: 一:安装必要的版本控制工具二:把Github上的项目克隆到本地三:将本地的项目上传到Github上 一:安装必要的版本控制工具 1️⃣ 安装 TortoiseGit 工具,下载地址:https://tortoisegit.org/do…...
Golang结合MySQL和DuckDB提高查询性能
要在Golang中组合MySQL和DuckDB以提高查询性能,请考虑使用混合查询执行方法。这种方法利用了MySQL强大的事务管理和DuckDB闪电般的分析处理能力。本文介绍如何充分利用两者的方法。 各取所长 用MySQL处理事务,用DuckDB处理分析 MySQL应该处理常规的INS…...
学技术学英语:TCP的三次握手和四次挥手
单词 汉语意思 音标 acknowledge 承认,确认 /əkˈnɒl.ɪdʒ/ acknowledgment 确认,承认 /əkˈnɒl.ɪdʒ.mənt/ duplex 双向的 /ˈdjuː.pleks/ establish 建立 /ɪˈstb.lɪʃ/ handshake 握手,握手协议 /ˈhnd.ʃeɪk…...
xiao esp32 S3播放SD卡wav音频
本文旨在使用xiao esp32 S3 播放SD卡上的音频文件 1 硬件准备 SD卡 2 代码实现 2.1 依赖库 ESP32-audioI2S-master 2.2 代码 #include "Arduino.h" #include "Audio.h" #include "SD.h"// Digital I/O used #define I2S_DOUT 6 #defi…...
Unity中实现伤害跳字效果(简单好抄)
第一步骤安装并导入Dotween插件(也可以不用导入之后直接下载我的安装包) 官网DOTween - 下载 第二步: 制作跳字预制体 建议把最佳适应打开,这样就不怕数字太大显示不全了。 第三步:创建一个空对象并编写脚本JumpNumbe…...
GaussDB日常维护操作
GaussDB日常维护操作 日常维护检查操作系统参数数据库健康状态日志收集日志清理应用连接数表的例行维护索引重建慢SQL诊断 日常维护检查 实例状态检查: #检查集群实例状态 gs_check -U omm -i CheckClusterStatecm_ctl query -Cvipd#检查主备DN的角色和同步状态 g…...
redis实现限流
令牌桶逻辑 计算逻辑: 代码: import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;/*** ClassName RedisRateLimiterTokenBucket* Description TODO* Author zhang zhengdong* DATE 2025/1/17 20:22* Version 1.0*/ public class…...
基于SpringBoot和PostGIS的各国及所属机场信息检索及可视化实现
目录 前言 一、空间数据简介 1、全球国家信息表 2、机场信息表 3、国家机场检索实现 二、SpringBoot后台实现 1、模型层实现 2、控制层实现 三、WebGIS可视化实现 1、Leaflet界面实现 2、国家及其机场可视化成果 3、全球机场数量排行榜 四、总结 前言 新春佳节即将…...
python http server运行Angular 单页面路由时重定向,解决404问题
问题 当Angular在本地ng server运行时候,可以顺利访问各级路由。 但是运行ng build后,在dist 路径下的打包好的额index.html 必须要在服务器下运行才能加载。 在服务器下我们第一次访问路由页面时是没有问题的,但是尝试刷新页面或手动输入路…...
GPT-4o背后的语音技术
GPT-4o背后的语音技术 GPT-4o是一个any2any的多模态模型,能够接受文本、音频、图像、视频等多模态输入,也能够生成包含文本、语音、图像和视频等混合内容的多模态输出。本文主要谈语音多模态的实现,并分享一些对于语音研究未来发展的看法。 GPT-4o (“o” 代表 “omni”) …...
微透镜阵列精准全检,白光干涉3D自动量测方案提效70%
广泛应用的微透镜阵列 微透镜是一种常见的微光学元件,通过设计微透镜,可对入射光进行扩散、光束整形、光线均分、光学聚焦、集成成像等调制,进而实现许多传统光学元器件难以实现的特殊功能。 微透镜阵列(Microlens Array&#x…...
Spring boot框架下的RocketMQ消息中间件
1. RocketMQ 基础概念 1.1 核心概念 以下是 RocketMQ 核心概念在 Spring Boot 的 Java 后端代码中的实际使用方式: Producer(生产者) 定义:Producer 是负责发送消息到 RocketMQ 的组件。它可以将消息发送到指定的 Topic。 实…...
从U-Boot到Kernel:RK3588 GPIO早期初始化的实战与演进
1. 为什么需要在U-Boot阶段初始化GPIO? 最近在调试RK3588开发板时,遇到了一个典型场景:板载的LED需要在系统启动最早阶段就亮起,作为硬件自检指示灯。按照传统做法,这个功能本该在Linux内核启动后由驱动实现࿰…...
电解式除湿器费电吗?电解除湿器 与 半导体冷凝式和传统的压缩机式除湿方案,有什么不一样?
ROSAHL 电解式除湿器的功耗极低,其原理决定了它是一款节能环保的产品。以最大型号的功耗计算,即便 724 小时不间断运行,一年的耗电量通常也不到 50 度电,远低于半导体冷凝式和传统的压缩机式除湿方案。各型号性能差异对比ROSAHL 主…...
ROS2 Humble下Cartographer纯定位不成功?别急,可能是你的.lua配置文件少了这行关键代码
ROS2 Humble下Cartographer纯定位失败的深度排查与解决方案 当你在RViz中看到地图显示正常,但激光雷达点云始终无法与地图正确匹配时,那种挫败感我深有体会。去年在部署仓库AGV项目时,我花了整整三天时间排查类似问题,最终发现是.…...
摄影镜头设计的‘平衡术’:我是如何用Zemax搞定三片物镜的像差优化难题的
摄影镜头设计的‘平衡术’:我是如何用Zemax搞定三片物镜的像差优化难题的 在光学设计的江湖里,三片式物镜就像一位深藏不露的高手——结构简单却暗藏玄机。去年接手一款工业检测镜头项目时,我原以为凭借Zemax的优化功能和过往双高斯镜头设计…...
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级 近期完成了笔趣阁小说爬虫的重构,从最初的Requests单线程版本,升级为Scrapy框架版本,过程中深刻体会到两者在开发效率、运行性能、代码可维护…...
如何用Dism++快速清理和优化Windows系统:免费工具完整指南
如何用Dism快速清理和优化Windows系统:免费工具完整指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款强大的Windows系统维护工具&…...
RePKG:深度解析Wallpaper Engine资源提取与纹理转换的终极方案
RePKG:深度解析Wallpaper Engine资源提取与纹理转换的终极方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 在Wallpaper Engine生态系统中,PKG文件提取和…...
LibreDWG:免费开源的DWG文件转换终极解决方案
LibreDWG:免费开源的DWG文件转换终极解决方案 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg 你是否经常遇到CAD设计文件格式不兼容的问题&…...
避坑指南:ESP32用摇杆控制舵机,为什么你的舵机会抖?
ESP32摇杆控制舵机抖动问题全解析:从硬件设计到代码优化的完整避坑指南 当你兴奋地组装好ESP32、摇杆和舵机,准备实现酷炫的机械控制时,却发现舵机像得了帕金森一样不停抖动——这种挫败感我太熟悉了。经过数十个项目的实战积累,我…...
别再为Matlab和Unity联调发愁了!手把手教你用UDP搞定实时数据通信(附完整C#/M代码)
跨平台实时通信实战:用UDP打通Matlab与Unity的数据通道 在机器人仿真和数字孪生项目中,Matlab强大的算法开发能力与Unity出色的可视化表现常常需要协同工作。但两个平台间的数据交换却让不少开发者头疼——TCP协议虽然可靠,但在实时性要求高的…...
