首页 > 其他分享 >MyBatis-Plus插入值后返回主键

MyBatis-Plus插入值后返回主键

时间:2022-09-07 20:58:12浏览次数:77  
标签:orderDetail oid order Plus 值后 LZ 主键

LZ做练手设计的时候有这样一个订单需求,先插入订单表数据(t_order),再写入订单详情表(t_orderDetail),详情表需要有一个与t_order的外键约束

t_order (

  oid     auto_increment     primary key

t_orderDetail (

  oid 外键约束需要t_order存在这个oid

因为t_orderDetail的oid是自增的,所以需要先插入t_order再给t_orderDetail添加oid的数据。

直接查表,选择最新的数据也行,但在高并发场景下会不会有错误呢?而且又要去数据库手动select一次数据

LZ通过查找资料和解决方案,找到如下解决方案,让MP,MYSQL执行后返回主键给我:

第一步:MyBatis-Plus的xml配置文件里面使用 "useGeneratedKeys" 和 "keyProperty" 配置,如下

 

 第二步:  直接执行这个方法,

 错误的方式:LZ一开始也以为直接返回值就是所需要的oid主键,但测试的时候发现数据库自增多少返回值都是 1,那不就还是受影响的行数了嘛

 

 

 

 正确的方式:应该是 千万不能想当然地以为这句SQL返回值就是oid,而应该从传入的order对象中通过getter()来获取

 

控制台打印后果然是LZ所需要的数据,轻松秒杀。

 

 

标签:orderDetail,oid,order,Plus,值后,LZ,主键
From: https://www.cnblogs.com/CoderRadeon/p/16667205.html

相关文章

  • Mybatist-plus在开发过程中遇到的问题和解决办法
    1,总是老忘记一些LambdaQueryWrapper常用的表达式   2,minmaxsum等聚合函数的查询方法QueryWrapper<ParagonPrintLog>queryWrapper=newQueryWrappe......
  • 【数据库】Oracle建表、创建序列、添加触发器生成自增主键
    CREATETABLE"TEST"."T_ORDER"(  "AUUID_0"VARCHAR2(255)NOTNULLENABLE,  "Order_ID"VARCHAR2(255)NOTNULLENABLE,  "User_ID"VARCHAR2(25......
  • mybatsi-plus的SQL分析打印
    p6spyp6spy依赖引入<dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>最新版本</version></dependency>application.yml配置:......
  • mybatisplus SQL一对多
    https://blog.csdn.net/Isyoubao/article/details/122212113 重点:<collectionproperty=“nspSchedulings”…/>property=“value”:对应list集合字段,当前为医生排班......
  • mybatis-plus-generator代码生成器(新)
    代码生成器所需要的依赖<!--代码生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</ar......
  • Spring_Boot + Mybatis_Plus初始化
    创建SpringBoot项目基础创建及基本配置:https://www.cnblogs.com/Stars0121/p/16601285.html安装依赖项目所需依赖<dependencies><dependency>......
  • MyBtis 七 ——添加&&主键返回
    配置文件完成添加功能1、编写接口方法:Mapper接口参数:除了id之外的所有数据结果:voidvoidadd(Brandbrand); ......
  • editplus + notepad++ 列编辑操作
    列编辑//编辑器列选择EditPlus1)菜单:编辑->选择->列选择(Edit->Select->ColumnSelect)2)先按下Alt+C,释放,然后移动鼠标或键盘上下左右键进行列模块的移动注意:......
  • Mybatis Plus公共字段自动填充
    MybatisPlus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。 实现步骤:1、在实体类......
  • Element Plus 在 vue3 中使用
    特殊情况下,解决方案:1、el-tree实现收缩的关键字:expanded【组件内部处理的树形数据格式中的关键字】定义树形组件:<el-treeref="treeRef">...</el-tree>获取组件......