Mybatis Plus使用@TableId的示例详解

 更新时间:2024年08月20日 11:24:53   作者:GoodStudyAndDayDayUp  
在 MyBatis Plus 中,@TableId 注解是用于标记实体类中的主键字段,它可以更方便地处理主键相关的操作,如自动填充主键值或识别主键字段,这篇文章主要介绍了Mybatis Plus使用@TableId,需要的朋友可以参考下

Mybatis Plus使用@TableId

1. @TableId

1.1 @TableId 可选类型

不添加注解时,默认使用ID_WORKER(3)

public enum IdType {
    /**
     * 数据库ID自增
     */
    AUTO(0),
    /**
     * 该类型为未设置主键类型(将跟随全局)
     */
    NONE(1),
    /**
     * 用户输入ID
     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
     */
    INPUT(2),
    /* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
    /**
     * 全局唯一ID (idWorker)
     */
    ID_WORKER(3),
    /**
     * 全局唯一ID (UUID)
     */
    UUID(4),
    /**
     * 字符串全局唯一ID (idWorker 的字符串表示)
     */
    ID_WORKER_STR(5);
    }

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

使用条件:
id 类型可以是Interger/Long;
数据库主键id,mysql必须设置自增主键,postgreSQL必须设置自增序列(例如:主键类型 serial4),才能够使用此注解。

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

使用条件:
id 类型必须是Long;
因为ID_WORKER 生成的snowflakeId 是19位的全局id。

2. 非主键字段添加@TableId

如果一张表只是一个关联表,非主表,只保存了主表的id。但任然需要通过这个字段对关联表进行CRUD。
此时只需要在关联表的该字段上加@TableId ,即可使用 mybatis-plus mapper自带的方法;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("fbr_basic_info")
public class FBRBasicInfoEntity {
    @TableId
    private Integer fbrInfoId;
    private String fbrType;
    private String fbrTypeCode;
    }

使用示例
查询

FBRBasicInfoEntity basicInfoEntity = fbrBasicInfoMapper.selectById(fbrInfoId);

新增

 FBRBasicInfoEntity basicInfoEntity = FBRAssemble.trans(basicInfoVO);
fbrBasicInfoMapper.insert(basicInfoEntity);

修改

fbrBasicInfoMapper.updateById(basicInfoEntity);

亲测可用。

补充:Mybatis-Plus中的@TableId

Mybatis-Plus中的@TableId

简介

MyBatis Plus 中,@TableId 注解是用于标记实体类中的主键字段。它可以更方便地处理主键相关的操作,如自动填充主键值或识别主键字段。

用法

public class User {
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;
    ...
}

用户表 user,其中主键字段名为 user_id,这个主键是数据库自增

value:指定数据库表中的主键字段名称。如果实体类的属性名与数据库表中的主键字段名相同,则可以省略此属性。
type:指定主键生成策略。

主键生成策略

  • IdType.AUTO:表示主键自增,适用于数据库支持的自增主键,如 MySQLAUTO_INCREMENT
  • IdType.ASSIGN_ID:使用雪花算法(Snowflake Algorithm)生成主键。
  • IdType.ASSIGN_UUID:生成一个不包含中划线的 UUID 作为主键。
  • IdType.INPUT:表示主键值需要手动输入或设置。

结束

到此这篇关于Mybatis Plus使用@TableId的文章就介绍到这了,更多相关Mybatis Plus使用@TableId内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Swing拆分窗格控件JSplitPane使用详解

    Swing拆分窗格控件JSplitPane使用详解

    这篇文章主要为大家详细介绍了Swing拆分窗格控件JSplitPane的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • String.replaceAll方法详析(正则妙用)

    String.replaceAll方法详析(正则妙用)

    这篇文章主要给大家介绍了关于String.replaceAll方法,正则妙用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Java字符串转时间简单示例代码

    Java字符串转时间简单示例代码

    这篇文章主要给大家介绍了关于Java字符串转时间的相关资料,在Java中字符和字符串常常需要相互转化,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • SpringMVC自定义消息转换器的使用其实很简单

    SpringMVC自定义消息转换器的使用其实很简单

    这篇文章主要介绍了SpringMVC自定义消息转换器的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 深入解析HashMap的put方法

    深入解析HashMap的put方法

    在Java集合中,HashMap的重要性不言而喻,作为一种存储键值对的数据结构,它在日常开发中有着非常多的应用场景,也是面试中的高频考点,本篇文章就来分析一下HashMap集合中的put方法
    2022-01-01
  • 基于Java信号量解决死锁过程解析

    基于Java信号量解决死锁过程解析

    这篇文章主要介绍了基于Java信号量解决死锁过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java 实现Excel文档添加超链接的代码

    Java 实现Excel文档添加超链接的代码

    超链接即内容链接,通过给特定对象设置超链接,可实现载体与特定网页、文件、邮件、网络等的链接,点击链接载体可打开链接目标,在文档处理中是一种比较常用的功能,本文将介绍通过Java程序给Excel文档添加超链接的方法,感兴趣的朋友一起看看吧
    2020-02-02
  • 使用Java生成JWT令牌的示例代码

    使用Java生成JWT令牌的示例代码

    json-web-token简称java web令牌,也称作JWT,是一种可以实现跨域身份验证身份的方案,jwt不加密传输数据,但能够通过数据前面验证数据的未被篡改,本文给大家介绍了如何使用Java生成JWT令牌,需要的朋友可以参考下
    2024-04-04
  • Spring在@ConditionalOnProperty注解使用详解

    Spring在@ConditionalOnProperty注解使用详解

    这篇文章主要介绍了Spring在@ConditionalOnProperty注解使用详解,@ConditionalOnProperty注解是Spring Boot的条件注解,主要用法是根据配置文件中的属性来控制某个配置类是否生效,或者控制某个Bean是否被创建,需要的朋友可以参考下
    2023-11-11
  • RabbitMQ的安装集群、镜像队列配置规划

    RabbitMQ的安装集群、镜像队列配置规划

    RabbitMQ 集群是一个或多个节点的逻辑分组,每个节点共享用户、虚拟主机、队列、流、交换机、绑定、运行时参数和其他分布式状态,本文给大家介绍RabbitMQ的安装集群、镜像队列配置规划,感兴趣的朋友一起看看吧
    2025-09-09

最新评论