MyBatisPlus 主键ID生产规则

2023-08-24 13:51:57 浏览数 (1)

在MyBatis-Plus中,主键ID的生成规则可以通过注解或配置文件进行配置。以下是常见的主键ID生成规则:

  1. 自增主键(AUTO_INCREMENT):使用数据库的自增特性生成主键ID。在MySQL中,可以使用@TableId(type = IdType.AUTO)注解或配置文件中的idType = AUTO来指定该规则。
  2. UUID主键:使用UUID(通用唯一标识符)生成主键ID。在MySQL中,可以使用@TableId(type = IdType.UUID)注解或配置文件中的idType = UUID来指定该规则。
  3. 雪花算法主键(Snowflake):使用Twitter的雪花算法生成分布式唯一ID。在MySQL中,可以使用@TableId(type = IdType.ASSIGN_ID)注解或配置文件中的idType = ASSIGN_ID来指定该规则。
  4. 自定义主键生成策略:可以通过实现IdentifierGenerator接口来自定义主键生成策略。在自定义的主键生成策略中,你可以根据自己的需求生成唯一的主键ID,并将其应用于实体类的主键字段。

我们来看一下MyBatisPlus提供的IdType枚举类型

代码语言:javascript复制
@Getter
public enum IdType {
    /**
     * 数据库ID自增
     * <p>该类型请确保数据库设置了 ID自增 否则无效</p>
     */
    AUTO(0),
    /**
     * 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
     */
    NONE(1),
    /**
     * 用户输入ID
     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
     */
    INPUT(2),

    /* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */
    /**
     * 分配ID (主键类型为number或string),
     * 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法)
     *
     * @since 3.3.0
     */
    ASSIGN_ID(3),
    /**
     * 分配UUID (主键类型为 string)
     * 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace("-",""))
     */
    ASSIGN_UUID(4);

    private final int key;

    IdType(int key) {
        this.key = key;
    }
}

自增主键

代码语言:javascript复制
    @TableId(type = IdType.AUTO)
    private String id;

特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com 第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤

0 人点赞