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
:表示主键自增,适用于数据库支持的自增主键,如MySQL
的AUTO_INCREMENT
。IdType.ASSIGN_ID
:使用雪花算法(Snowflake Algorithm
)生成主键。IdType.ASSIGN_UUID
:生成一个不包含中划线的UUID
作为主键。IdType.INPUT
:表示主键值需要手动输入或设置。
结束
到此这篇关于Mybatis Plus使用@TableId的文章就介绍到这了,更多相关Mybatis Plus使用@TableId内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java xml出现错误 javax.xml.transform.TransformerException: java.
这篇文章主要介绍了Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException的相关资料,需要的朋友可以参考下2016-11-11Java数据库连接池之c3p0简介_动力节点Java学院整理
这篇文章主要为大家详细介绍了Java数据库连接池之c3p0简介的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08Java中Mybatis,SpringMVC,Spring的介绍及联系
这篇文章主要为大家详细介绍了Java中Mybatis,SpringMVC,Spring的介绍及联系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-10-10SpringMVC之RequestContextHolder详细解析
这篇文章主要介绍了SpringMVC之RequestContextHolder详细解析,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC提供的RequestContextHolder,需要的朋友可以参考下2023-11-11
最新评论