MyBatis插入数据时获取自增主键的值

Stella981
• 阅读 585

在我们录入数据时,针对某些记录比如用户信息之类的数据,我们往往需要同时在其关系表中更新数据。在更新数据的过程中记录的某些字段可能是自增涨序列,这时候我们就学要使用MyBatis中获取主键的方法

第一步:

在Mapper文件中设置useGeneratedKeys和keyProperty两个属性,其中“keyProperty”值为JAVA对象的属性名;示例如下:

<insert id="addUser" parameterType="User" useGeneratedKeys="true"
        keyProperty="id">
        INSERT INTO
        user(username,loginName,phone,gender,email,description,password,status,update_time,create_time)
        values(#{username},#{loginName},#{phone},#{gender},#{email},#{description},#{password},#{status},NOW(),NOW())
    </insert>

第二步:

 此时JAVA对象中的id属性已经被赋值为字段自增长所得的值,接下来的储存直接使用该对象就行;

  <insert id="aaa" parameterType="User" >
        INSERT INTO
        aaa (a,b) values (#{id},#{b})
    </insert>
    <insert id="bbb" parameterType="User" >
        INSERT INTO
        bbb (a,b) values (#{a},#{id})
    </insert>
点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
LosAngel LosAngel
3年前
MySql 查询重复数大于1的数据(HAVING的使用)
在数据增加的过程中,因为某些原因,会产生重复数据,此时我们要看哪些数据重复了。举栗:要操作的表为test主键id需要排重的字段为field1,field2,field3,field4SQL语句为SELECT,count(id)FROMsysuser_user_pointlog_online_bakGROUPB
Wesley13 Wesley13
3年前
MySQL使用on duplicate key update时导致主键不连续自增
使用onduplicatekeyupdate语法有时是很方便,但是会有一个影响:默认情况下,每次更新都会更新该表的自增主键ID,如果更新频率很快,会导致主键ID自增的很快,过段时间就超过数字类型的的范围了解决这个问题,有两种方式:(实际我目前使用的方式是把自增主键ID设置为bigint,也有一部分操作先查询再选择插入OR更新)方法一:拆分成两个
Wesley13 Wesley13
3年前
mysql自增id获取
mysql自增id获取使用max函数:selectmax(id)fromtablename 优点:使用方便快捷。缺点:获取的不是真正的自增id,是表中最大的Id,如果有删除数据的话,那么该值和自增id相差比较大。如果有连表数据,有可能导致数据错乱。使用LAST\_INSERT\_ID
Stella981 Stella981
3年前
Mybatis useGeneratedKeys 填充自增主键值(使用Mysql)的原理分析
一、Mybatis配置<insertid"insert"parameterType"com.test.TestDO"keyProperty"id"useGeneratedKeys"true"useGeneratedKeys“true”时,mybatis会将自增ID值填充到TestDO对象中的id(
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn