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->(oid),所以需要先插入t_order再给t_orderDetail添加oid的数据。

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

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

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

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

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

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

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

如果这篇文章对您有帮助,希望可以点一个“推荐”,主要是想看看LZ写的这些小随笔有没有帮助到您

最新文章

  1. SqlServer代理执行[分发清除: distribution] 无法删除快照文件
  2. PowerShell读取Windows产品密钥
  3. php魔术方法 http_build_query使用
  4. testNG小试牛刀
  5. HDU 2181 哈密顿绕行世界问题 (DFS)
  6. 亲测linux上安装mysql
  7. 网页设计之PS画渐变线条
  8. JavaScript习题
  9. ezjailserver备份和恢复方法
  10. [2016-03-15]rabbitmq notes
  11. MicroPython教程之TPYBoard开发板DIY小型家庭气象站
  12. Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决
  13. 读《图解HTTP》有感-(HTTP报文内的HTTP消息)
  14. 爬取字段和图片 spider_getModelInformation
  15. iBatis.Net的基本情况和运行原理
  16. supergridcontrol记录
  17. ubuntu下挂载物理分区到openmediavault4
  18. 谈谈对C#中反射的一些理解和认识(下)
  19. [No000017E]改善C#程序的建议7:正确停止线程
  20. Codeforces Round #514 (Div. 2) E. Split the Tree(倍增+贪心)

热门文章

  1. Java项目引入第三方Jar包
  2. cv::eigen
  3. TexturePacker基本使用
  4. hdrp package导入工程
  5. java第六周学习情况
  6. Unity 消息机制
  7. 计算2-expr命令举例
  8. ssr next 学习记录
  9. 如何使用Antd的图片上传组件
  10. dead code?