Mybatis-Plus 新增获取自增列id方式

目录
  • 新增获取自增列id
    • 1、实体类定义
    • 2、解决办法
    • 3、调用方法获取id说明
  • 解决id自增方法

新增获取自增列id

1、实体类定义

注意:@TableId(value = “id”, type = IdType.AUTO)注解中的 type = IdType.AUTO 属性标注主键为自增策略。

import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
@Data
@TableName("users")
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @TableField("`name`")
    private String name;
}

2、解决办法

方法一:

使用框架自带的insert方法。

int insert(T entity);

方法二:

@Insert("insert into users(`name`) values(#{user.name})")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
Integer add(@Param("user") User user);

方法三:

@InsertProvider(type = UserMapperProvider.class, method = "add")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
Integer add(@Param("user") User user);

UserMapperProvider类

public class UserMapperProvider {
    public String add(User user) {
        return "insert into users(id, `name`) values(#{user.id},#{user.name})";
    }
}

3、调用方法获取id说明

方法调用前:

方法调用后:

解决id自增方法

在pojo文件中id加入

@TableId(value = “id”,type = IdType.AUTO)

application.yml中加入:

global-config:
     db-config:
              id-type: auto

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis-plus实现主键自增和自动注入时间的示例代码

    mybatis-plus依赖导入 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> 建议使用3.3.0后的版本. 导入mybatis-plus就不用导入mybatis了,冲突! 连接数据库 sp

  • mybatis-plus主键id生成、字段自动填充的实现代码

    一.主键id的生成 数据库表里通常都会有一个主键id,来作为这条数据的唯一标识. 常见的方式 1.数据库自动增长 这种很常见了,可以做到全库唯一.因为id是天然排序的,对于涉及到排序的操作会很方便. 2.UUID 上面的自动增长,虽然简单,但是对于分表这样的操作来说就比较麻烦.因为你在第二张插入数据的时候,需要拿到上一张表最后一个数据的id. UUID则不同,每次都一个随机唯一的值,不过因为是随机,所以也就没有排序了. 3.redis redis也可以用来生成id,利用redis的原子操作.好处

  • mybatis新增save结束后自动返回主键id详解

    目录 mybatis新增save结束后自动返回主键id 1.使用场景 2.原理在Mybatis配置了 mybatis或者mybatis-plus中save方法返回主键值 1.mapper.xml中 2.service或者dao中 mybatis新增save结束后自动返回主键id 1.使用场景 save操作之前实体类中id为null,save之后自动返回带id的实体类 @Override public ChartPagePanel save(ChartPagePanel entity) { Use

  • MybatisPlus中插入数据后获取该对象主键值的实现

    实体对象 主键IdType要设置为AUTO 表示数据库ID自增 @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class Employee implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) priv

  • Mybatis-Plus 新增获取自增列id方式

    目录 新增获取自增列id 1.实体类定义 2.解决办法 3.调用方法获取id说明 解决id自增方法 新增获取自增列id 1.实体类定义 注意:@TableId(value = “id”, type = IdType.AUTO)注解中的 type = IdType.AUTO 属性标注主键为自增策略. import lombok.Data; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatispl

  • MyBatis插入时获取自增主键方法

    MyBatis 3.2.6插入时候获取自增主键方法有两种.下面以以MySQL5.5为例通过两种方法给大家介绍mybatis获取自增主键的方法,一起看看吧. 以MySQL5.5为例: 方法1: <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id"> insert into person(name,pswd

  • Mybatis使用useGeneratedKeys获取自增主键的方法

    摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在insert/update.用起来很爽,但是经常踩坑,还不知为何.本篇就是深入分析获取自增主键的原理. 问题 首先摘两段我司一些老代码的bug 批量插入用户收藏 for (tries = 0; tries < MAX_RETRY; tries++) { final int result = colle

  • Mybatis插入时返回自增主键方式(selectKey和useGeneratedKeys)

    目录 Mybatis插入时返回自增主键 Mybatis批量插入返回自增主键 解决办法 Mybatis插入时返回自增主键 通过selectKey在插入操作前或者操作后获取key值,做为字段插入或返回字段.(此段代码获取的序列值id作为字段值插入到实体类中返回) <insert id="insert"> <selectKey keyProperty="id" resultType="int" order="AFTER&qu

  • MySQL如何让一个表中可以有多个自增列

    目录 1.手动指定自增值 2.手动修改自增值 3.一个表可以有多个自增列吗? 4.其他注意事项 4.1 自增列只能为整数类型 4.2 必须配合 key 一起使用 总结 前言: 自增列可使用 auto_increment 来实现,当一个列被标识为 auto_increment 之后,在添加时如果不给此列设置任何值,或给此列设置 NULL 值时,那么它会使用自增的规则来填充此列. PS:本文以下内容基于 MySQL InnoDB 数据库引擎. 默认情况下自增列的值为 1,每次递增 1,比如以下建表

  • JS生成唯一id方式之UUID和NanoID

    目录 一.为什么 NanoID 正在取代 UUID 二.js如何生成 三.NanoID的方式 前言: 唯一id有了更好的方式,那就是NanoID,今天这篇文章记录一下NanoID 正在取代 UUID?及js 生成uuid及NanoID的方法. 一.为什么 NanoID 正在取代 UUID 1..更安全 在大多数随机生成器中,它们使用不安全的 Math.random() .但是,NanoID 使用 crypto module 和 Web Crypto API,意味着 NanoID 更安全. 此外,

  • mybatis抽取基类BaseMapper增删改查的实现

    目录 准备工作: 1:数据库表 2:准备实体类 步骤1:编写工具类Tools:作用:用于驼峰和数据库字段的转换 步骤2:自定义两个注解,分别用于类字段的排除和字义主键 步骤3:自定义动态sql生成类BaseSqlProvider<T> 步骤4:编写BaseMapper基类接口 举例: 目前项目当中使用mapper.xml文件方式对数据库进行操作,但是每个里边都有增/删/改/查,为了方便开发,把这些公共的代码提取出来,不用当做基类,不用每个Mapper文件都写了 准备工作: 1:数据库表 CRE

  • MyBatis后端对数据库进行增删改查等操作实例

    目录 1.MyBatis 是什么? 2. MyBatis 的重要性 3. MyBatis 查询 3.1 创建数据库和表 3.2 添加MyBatis框架⽀持 3.2.1 新项目添加MyBatis 3.2.1 老项⽬添加 MyBatis 3.3 配置连接字符串和MyBatis 3.3.1 配置连接字符串 3.3.2 配置mybatis 中的 xml 保存路径 3.4 添加后端代码 3.4.1 添加实体类 3.4.2 添加 mapper 接口 3.4.3 添加UserMapper.xml 3.4.4

  • MySQL自增列插入0值的解决方案

    在将数据库从MSSQL迁移到MySQL的过程中,基于业务逻辑的要求,需要在MySQL的自增列插入0值.在MSSQL中是这样完成的: 复制代码 代码如下: string sql;sql = " set identity_insert dbo.AppUsers on " + " insert dbo.AppUsers (Id, IsLocked, IsMustChangeLocalPassword, IsAvailable, Name, Sequence, CreatedBy,

  • bootstrap table分页模板和获取表中的ID方法

    1.dao层 MyBatis映射 mapper.xml中 <select id="getTcdt" parameterType="com.ls.entity.Mydata" resultMap="BaseResultMap"> select * from TB_COMMUNICATION_DEVICE_TBL ORDER BY ${ordername} ${order} </select> mapper.java中 pub

随机推荐