关于mybatis插入返回主键id和SpringBoot事务注解自调用演示

news2024/11/26 14:29:35

文章目录

    • 一. 插入返回任意规则主键ID
    • 二. SpringBoot自调用事务
      • 2.1 场景1
      • 2.2 场景2
    • 自调用结论总结


一. 插入返回任意规则主键ID

··实体对象

@TableName("bank")
@Data
public class Entity {
    @TableId("id")
    Integer id;
    @TableField("money")
    Integer money;
    @TableField("name")
    String name;

    public Entity(String name,Integer money){
        this.name = name;
        this.money = money;
    }
}

在这里插入图片描述

在这里插入图片描述
结论:返回值依旧是受影响行数,但insert标签中selectKey.keyProperty可以绑定入参对象的指定属性。
keyProperty: 绑定到入参对象的属性
order: 指定该标签语句执行顺序


二. SpringBoot自调用事务

在这里插入图片描述
下列是程序执行前数据库快照
在这里插入图片描述

2.1 场景1

事务入口public方法,自调用子方法规则任意
执行金额增加和扣减快照如下
在这里插入图片描述
变种
在这里插入图片描述
在这里插入图片描述
事务均成功
结论: 建议事务注解放在controller层。或者放在controller调用的第一个service作为事务入口 不需要考虑很多问题


2.2 场景2

自调用子方法为事务入口
无事务方法,自调用有事务方法
代码执行后快照
在这里插入图片描述
结论:事务失效

自调用结论总结

结论: 建议事务注解放在controller层。或者放在controller调用的第一个service作为事务入口 不需要考虑很多问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[原创][1]探究C#多线程开发细节-“Thread类的简单使用“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

代码随想录算法训练营第五十七天|739. 每日温度、496.下一个更大元素 I

LeetCode 739. 每日温度 题目链接:739. 每日温度 - 力扣(LeetCode) 单调栈开始,为什么要用栈,因为栈是先入后出,当我们遍历从前往后的时候,每次遍历的元素都是添加至栈尾,方便我们进…

勒索解密后oracle无法启动故障处理----惜分飞

客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错 [oraclehisdb ~]$ dbv filesystem01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyrig…

小型工厂MES选型指南

在制造业中,制造执行系统(MES)是一种重要的工具,可以帮助工厂实现更高效的生产和更精细的管理。对于小型工厂而言,选择适合的MES系统更是至关重要。如何从多方面评估MES系统的功能和性能,选择最适合的MES系…

Python continue的用法详解与转义字符及用法

Python continue的用法详解 continue 的功能和 break 有点类似,区别是 continue 只是忽略当次循环的剩下语句,接着开始下一次循环,并不会中止循环;而 break 则是完全中止循环本身。 如下程序示范了continue 的用法: # …

OpenCV快速入门:移动物体检测和目标跟踪

文章目录 前言一、移动物体检测和目标跟踪简介1.1 移动物体检测的基本概念1.2 移动物体检测算法的类型1.3 目标跟踪的基本概念1.4 目标跟踪算法的类型 二、差值法检测移动物体2.1 差值法原理2.2 差值法公式2.3 代码实现2.3.1 视频或摄像头检测移动物体2.3.2 随机动画生成的移动…

126. 单词接龙 II

126. 单词接龙 II 需要注意的是,由于要找最短路径,连接 dot 与 lot 之间的边就不可以被记录下来,同理连接 dog 与 log 之间的边也不可以被记录。这是因为经过它们的边一定不会是最短路径。因此在广度优先遍历的时候,需要记录的图…

【STM32】GPIO输入

1 GPIO输出 1.1 按键简介 按键:常见的输入设备,按下导通,松手断开 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动 1.2 传感器模块简介 传感器模块&#xff…

大数据Doris(三十):删除数据(Delete)

文章目录 删除数据(Delete) 一、​​​​​​​DELETE FROM Statement(条件删除)

nodejs+vue+elementui学生竞赛管理系统65o97

高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生体育 能力与创新思维、学生竟赛管理系统检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而我所在学院多采用半手工管理学生竟赛的方式,所以有必要开发学生竟赛管理系统来对学生…

livox 半固体激光雷达 gazebo 仿真 | 安装与验证

livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证livox 介绍安装验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 介绍 览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业&#xf…

CANdelaStudio 中 Bese Variant 和 Variant区别

关于 Bese Variant ,其在 CDDT 和 CDD 文件中都存在,有且只有一个 主要包含三部分,重点只关注 DIDs 和 Supported Diagnostic Classes 而在 CDD 文件中,除了 Bese Variant 外,还有一个 Variant “Variant” 这个概…

C# 使用PanGu分词

写在前面 这是官方介绍:盘古分词是一个中英文分词组件。作者eaglet 曾经开发过KTDictSeg 中文分词组件,拥有大量用户。作者基于之前分词组件的开发经验,结合最新的开发技术重新编写了盘古分词组件。 盘古分词组件需要配合其字典文件使用&am…

Cobalt Strike的各类反向上线操作

前言 Cobalt Strike 使用 GUI 框架 SWING(一种java GUI的库)开发,攻击者可通过CS木马在 beacon 元数据中注入恶意 HTML 标签,使得Cobalt Strike对其进行解析并且加载恶意代码(类似XSS攻击),从而…

Nginx Openresty通过Lua+Redis 实现动态封禁IP

需求 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单中的 IP ,我们将拒绝提供服务。并且可以设置封禁失效时间 环境准备 linux version: centos7 / ubuntu 等 redis version: 5.0.5 nginx version: nginx…

【C++】继承(下) 单继承 | 多继承 | 菱形继承 | 继承和组合

一、单/多/菱形继承 1.单继承 当一个子类只有一个直接父类时,称这个继承关系为单继承。 2.多继承 一个子类有两个或以上直接父类时称这个继承关系为多继承。 举个实例:新老师进学校工作时,一般会作为助教老师,一边代课教书&am…

【shell】正则表达式和文本三剑客之grep和awk

目录 一、正则表达式 1.1用法 1.2表示字符匹配 1.3表示次数 1.4表示位置锚定 1.5表示分组或其他 1.6扩展正则表达式 二、grep命令 三、awk命令 3.1awk与vim的区别 3.2awk的语法 3.3基础用法 test1.提取磁盘的分区利用率 test2.提取用户名和uid号 test3.提取ip地址…

数据结构与算法编程题27

计算二叉树深度 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1 #define Maxsize 100 #define STR_SIZE 1024typedef struct BiTNode {ElemType data;BiTNode* lchild, * rchild; }BiTNo…

前端入职环境安装

前端入职 后环境安装 &#xff0c;内函 nodenvmgit微信开发者工具vscode 的安装包 一.node安装-js运行环境 1.node下载&#xff0c;下载地址Node.js 2.配置淘宝镜像 npm config set registry https://registry.npmmirror.com/ 3.查看配置 npm config list 二.nvm安装-切…

必应的下一个十年:穿越创新的奇点时刻

2023年是微软搜索引擎必应进入中国市场十周年&#xff0c;2024年也将迎来必应上市十五周年。对于风起云涌的互联网公司来说&#xff0c;十年到十五年是一个相当长的创新周期。而在2023年初&#xff0c;以GPT为代表的大语言模型横扫全球科技产业&#xff0c;也对互联网和云计算带…