在写一个接口时,我们需要对两个表分别动刀,但是我们需要前一个表的主键作为下一个表的功能外键,

如果使用mybatisplus,insert完成之后便可以直接在对象中取出这个id值

如果使用mybatis,我们就需要在手写的xml文件中额外写一些代码:

<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO table_name (column1, column2, ...)
VALUES (#{property1}, #{property2}, ...);
</insert>
  1. useGeneratedKeys="true" 属性表示在插入数据时要使用数据库生成的主键。这通常用于获取插入记录后数据库生成的自增主键值。

  2. keyProperty="id" 属性指定了用于存储生成的主键值的 Java 对象的属性。在这个例子中,表示将生成的主键值设置到对象的 id 属性中

 
通过上述新增的两个属性,我们可以实现下面要求

dishMapper.insert(dish);
Long dishId = dish.getId();

如何立刻读取在MySQL中自动生成的主键的更多相关文章

  1. javaweb学习总结(三十七)——获得MySQL数据库自动生成的主键

    测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: ...

  2. javaweb(三十七)——获得MySQL数据库自动生成的主键

    测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: ...

  3. 五.获得MYSQL数据库自动生成的主键

    测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: ...

  4. JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理

    获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: /** * 获取数据 ...

  5. 【转】JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理

    转自:http://www.cnblogs.com/ysw-go/ 获取数据库自动生成的主键 我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. ...

  6. java面试一日一题:mysql中的自增主键

    问题:请讲下mysql中的自增主键 分析:该问题主要考察对mysql中自增主键的掌握,使用场景及如何设置 回答要点: 主要从以下几点去考虑 1.什么自增主键 2.使用场景是什么: 3.innodb_a ...

  7. PowerDesigner中表名过长,自动生成的主键名截取的问题

    在PowerDesinger中,若表名过长,自动生成的主键名会被自动截取. 解决如下:DataBase/Edit Current DBMS/Scripts/Objects/PKey/ConstName ...

  8. (jdbc)取得数据库自动生成的主键方法

    一些类,在前面的博客中有,就不重复了 public class Test2 { TestDAO t=new TestDAO(); /*前提是数据表的主键是自动增加的, *取得数据库自动生成的主键 * ...

  9. Java_jdbc 基础笔记之十五 数据库连接(取得数据库自动生成的主键)

    public class testGetKeyValue { /** * 取得数据库自动生成的主键 */ @Test public void testGeneratedKeys() { Connect ...

  10. JDBC 获取自动生成的主键

    为什么需要获取自动生成的主键 例如:

随机推荐

  1. wrk压测工具安装和使用

    wrk压测工具安装: mkdir wrk git clone https://github.com/wg/wrk.git cd wrk/ cp wrk /usr/sbin/ wrk压测工具使用 使用方 ...

  2. 记一次 .NET某工业设计软件 崩溃分析

    一:背景 1. 讲故事 前些天有位朋友找到我,说他的软件在客户那边不知道什么原因崩掉了,从windows事件日志看崩溃在 clr 里,让我能否帮忙定位下,dump 也抓到了,既然dump有了,接下来就 ...

  3. docker——存储配置与管理

    docker存储配置与管理 查看docker info [root@hmm overlay2]# docker info Client: Docker Engine - Community Versi ...

  4. 【技巧】JS代码这么写,前端小姐姐都会爱上你

    前言 缘由 JS代码小技巧,教你如何守株待妹 你想听的故事: 顶着『前端小王子』的称号,却无法施展自己的才能. 想当年本狗赤手空拳打入前端阵地,就是想通过技术的制高点来带动前端妹子.奈何时不待我,前端 ...

  5. 解决PMML namespace URI httpwww.dmg.orgPMML-4_4 is not supported

    使用pmml的方式跨平台部署机器学习模型时,在java中加载模型,出现了该错误 原因:java的jar包版本与PMML文件的版本不相符,jar包的版本过低无法解析PMML文件.如果升级jar包,加载模 ...

  6. 使用Python实现深度学习模型:序列到序列模型(Seq2Seq)

    本文分享自华为云社区<使用Python实现深度学习模型:序列到序列模型(Seq2Seq)>,作者: Echo_Wish. 序列到序列(Seq2Seq)模型是一种深度学习模型,广泛应用于机器 ...

  7. JS获取表单所有内容

    var formData = {}; var t = $('#Form').serializeArray(); $.each(t, function() { formData[this.name] = ...

  8. C#字符串截取分割方法

    字符串操作:分割 Split.连接数组 Join.拼接 Format.截取 Substring.替换 Replace.左填充 PadLeft.右填充 PadRight.删除 Remove 1 //分割 ...

  9. leetcode_2-两数相加_javascript

    题目 2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新 ...

  10. 订单请求接口设计,避免timeout超时问题 下单解决

    订单请求接口设计,避免timeout超时问题 下单解决 接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理 https://www.cnblogs.com/oktokeep/p/17668039.h ...