zoukankan      html  css  js  c++  java
  • 通用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>
    

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

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

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

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

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

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

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

  • 相关阅读:
    HttpWebRequest中的ContentType详解
    c# 创建Windows服务
    转载 Url编码
    在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。
    IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
    Response.ContentLength获取文件大小
    unable to instantiate activity...
    查看android-support-v4.jar引出的问题
    导入项目 R.java没有
    初识python: 局部变量、全局变量
  • 原文地址:https://www.cnblogs.com/wgty/p/12810509.html
Copyright © 2011-2022 走看看