首页 > 技术文章 > 【Mybatis-Plus学习笔记(七)】主键策略

zllk 2020-11-26 21:34 原文

本系列博客其他文章请点击下方链接查看
【Mybatis-Plus学习笔记】目录

MP支持的主键策略介绍

Mybatis-Plus默认使用雪花算法生成主键。如果想了解雪花算法,可以看看笔者同系列文章——【Mybatis工具(五)】雪花算法。当然你还可以不使用默认的主键策略。

局部主键策略实现

MP的主键策略定义在枚举类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);

0:数据库主键自增
1:不配置主键策略,就是跟随全局,也就是雪花算法
2:用户输入
3、4、5只有当输入ID为0的时候才能有效,如果不为空,就会插入你输入的内容作为ID
3:跟随全局,也就是雪花算法
4:UUID作为主键
5:跟随全局,也就是雪花算法,和3不同的是这个主键是字符串

在相应的实体主键字段上面设置即可

    @TableId(type = IdType.AUTO)
    private Long id;

全局主键策略实现

全局配置需要修改配置文件,如下:

mybatis-plus.global-config.db-config.id-type=uuid

如果全局策略和局部策略同时存在,局部策略优先于全局策略。

其实在项目不是很大的情况下,主键自增完全应付的过来,所以笔者还是老老实实的用主键自增吧。

推荐阅读