当前位置:   article > 正文

通用Sql返回自增长insert后的id_sql insert 返回生成的id

sql insert 返回生成的id

需求:
项目中的id是自增长的,现在需要获取到刚insert之后自动生成的主键id,在项目使用mybatis封装的通用CRUD方法的情况下,要如何获取这个自动生成的id?

通用sql
在pom.xml文件中加入通用sql的依赖

<!-- 通用Mapper插件 文档地址:https://gitee.com/free/Mapper/wikis/Home -->
		<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper-spring-boot-starter</artifactId>
			<version>2.1.5</version>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

mybatis封装好的通用的CRUD方法
在这种情况下,有两种方法可以获取刚insert之后自动生成的id.

方法一:
1.实体类中在id字段上使用**@GeneratedValue注解实体类
2. 实现类(serviceImpl)中,使用
@Options**注解并做如下申明
在这里插入图片描述
此时可以使用下面的方法:也就是对象.getId()来获取到刚insert自动生成的主键id
在这里插入图片描述
方法二:

	我在项目中使用的就是第二种方法,因为比较方便。
  • 1

第二种方法在实体类中不用添加**@GeneratedValue注解,也不用在实现类(serviceImpl)中添加@Options注解来做任何说明,
直接使用mybatis封装好的一个方法 insertUseGenerateKeys(Object),然后获取id也是使用
对象.getId()**。具体操作如下。

在这里插入图片描述
使用下面的方法来获取刚刚insert之后自动生成的主键id(注意:这里的对象必须是刚刚insert的对象
在这里插入图片描述

insert()和insertUseGeneratedKeys()方法的区别

在数据库的主键id类型为int的时候,两种方法都可以通过 实体类.getId()获取到刚insert的记录的id,
如果主键设置了自动增长:使用insert()方法
如果主键没有设置自动增长:使用insertUseGeneratedKeys()方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/241268
推荐阅读
  

闽ICP备14008679号