MyBatis-Plus 的主键成生策略

5 min read

主键生成策略

  • MyBatis-Plus默认的主键策略是: ID_WORKER 全局唯一ID

  • 要想主键自增需要配置如下主键策略:需要在创建数据表的时候设置主键自增;实体字段中配置 @TableId(type = IdType.AUTO)

  • 几种主键成生策略的对比: 自动增长不方便分库分表;当IdType的类型为ID_WORKER、ID_WORKER_STR或者UUID时,主键由MyBatis Plus的IdWorker类生成,idWorker中调用了分布式唯一 ID 生成器 - Sequence 主键生成策略

雪花算法

snowflake算法是Twitter开源的分布式ID生成算法,结果是一个long类型的ID 。其核心思想:使用41bit作为毫秒数,10bit作为机器的ID(5bit数据中心,5bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每个毫秒可以产生4096个ID),最后还有一个符号位,永远是0。

全局配置策略

要想影响所有实体的配置,可以设置全局主键配置

mybatis-plus:
  global-config:
    db-config:
      id-type: auto