使用雪花算法生成主键ID
使用MybatisPlus-定义数据id为雪花生成的唯一ID值
@Getter
@Setter
@TableName("b_project")
public class FinProjectAuthEntity extends Model<FinProjectAuthEntity> {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
}
其他策略
@TableId(value = "id", type = IdType.AUTO)
详解
type属性:设置主键生成策略,不指定的话默认雪花算法 (数据库记得勾选自动递增)
1:AUTO(0)—使用数据库的自增策略,注意,该类型请确保数据库设置了id自增,否则无效
2:NONE(1)—不设置id生成策略
3:INPUT(2)—需要自己数据添加主键,不能为null,否则报错
4:ASSIGN_ID(3)—默认就是这个,基于雪花算法的策略生成数据id,与数据库id是否设置自增无关(如果我们自己指定了ID,便不会触发雪花算法),可兼容数值型与字符串型
5:ASSIGN_UUID(4)—以UUID生成算法作为id生成策略
————————————————
版权声明:本文为CSDN博主「小徐敲java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_19891197/article/details/129162472
在这段代码中,@TableId 注解用于标记一个字段,表示这个字段是数据库表的主键字段。注解的参数包括:
value = "id":这是主键字段的名称,通常对应数据库表的主键列名为 "id"。type = IdType.ASSIGN_ID:这是主键的生成策略,它告诉ORM框架如何生成主键值。IdType.ASSIGN_ID可能表示使用一个分配的唯一标识符来生成主键值,这通常由数据库或框架自动生成。不同的ORM框架支持不同的主键生成策略。
雪花算法:- 雪花算法(雪花)是微博开源的分布式ID生成算法其核心思想就是:使用一个64位的长型的数字作为全局唯一ID。在分布式系统中的应用十分广泛,且ID引入了时间戳,基本上保持自增的。
pom依赖 -
<properties>
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
<main-class>com.ccxgf.WebApplication</main-class>
<mybatis-plus-boot.version>3.5.2</mybatis-plus-boot.version>
<mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version>
<mybatis-plus-join.version>1.3.6</mybatis-plus-join.version>
<mybatis-plus-dynamic-datasource.version>3.5.2</mybatis-plus-dynamic-datasource.version>
<fastjson.version>1.2.83</fastjson.version>
<lombok.version>1.18.8</lombok.version>
</properties> -
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.12.RELEASE</version>
</parent> -
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot.version}</version>
</dependency>
<!-- mybatis-plus join -->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>${mybatis-plus-join.version}</version>
</dependency>
<!-- mybatis-plus generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus-generator.version}</version>
</dependency>
<!-- mybatis-plus dynamic-datasource -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${mybatis-plus-dynamic-datasource.version}</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>

浙公网安备 33010602011771号