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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Spring MVC优雅处理异常的6种方式

    详解Spring MVC优雅处理异常的6种方式

    在Spring中提供了多种机制来处理控制器抛出的异常,确保应用程序在面对各种错误情况时能够优雅地响应,本文我们来详细分析Spring MVC中6种优雅处理异常的方式,需要的可以参考下
    2024-12-12
  • java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    这篇文章主要介绍了 java 利用反射机制,获取实体所有属性和方法,并对属性赋值的相关资料,需要的朋友可以参考下
    2017-01-01
  • Java 自动安装校验TLS/SSL证书

    Java 自动安装校验TLS/SSL证书

    这篇文章主要介绍了Java 自动安装校验TLS/SSL证书的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • 自己动手写一个java版简单云相册

    自己动手写一个java版简单云相册

    这篇文章主要为大家分享了自己动手写的一个java版简单云相册,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 使用Idea连接MySQL的详细步骤总结

    使用Idea连接MySQL的详细步骤总结

    今天给大家带来的是关于IDEA连接数据库的问题,文章围绕着使用Idea连接MySQL的详细步骤展开,文中有非常详细的介绍及图文示例,需要的朋友可以参考下
    2021-06-06
  • springboot整合nacos的入门Demo及Nacos安装部署

    springboot整合nacos的入门Demo及Nacos安装部署

    Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理,Nacos 致力于帮助您发现、配置和管理微服务,这篇文章主要介绍了springboot整合nacos的入门Demo,需要的朋友可以参考下
    2024-01-01
  • Java开发神器Lombok安装与使用详解

    Java开发神器Lombok安装与使用详解

    Lombok的安装分两部分:Idea插件的安装和maven中pom文件的导入,本文重点给大家介绍Java开发神器Lombok安装与使用详解,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • IntelliJ IDEA如何设置JDK版本

    IntelliJ IDEA如何设置JDK版本

    这篇文章主要介绍了IntelliJ IDEA如何设置JDK版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Java中IO流之字符流与字节流的转换方式

    Java中IO流之字符流与字节流的转换方式

    在Java中,字节流与字符流是处理数据的两种方式,字节流适用于处理各种数据类型,如图片、音频等非文本数据,而字符流专门用于处理文本数据,Java提供了InputStreamReader和OutputStreamWriter这两个类来实现字节流向字符流的转换
    2024-10-10
  • 如何获取MyBatis Plus执行的完整的SQL语句

    如何获取MyBatis Plus执行的完整的SQL语句

    这篇文章主要介绍了如何获取MyBatis Plus执行的完整的SQL语句问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论