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


一. 插入返回任意规则主键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作为事务入口 不需要考虑很多问题
被事务注解修饰的方法,不能被本身其他方法调用。这个算失效,但是可以主动调自身的其他方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最难不过坚持丶渊洁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值