mybatis-plus的id策略

再上一篇博客中,我沒有插入id,但id自動生成了。這就很神奇。

@TableId()
private Long id;

在我們的id上可以加上@TableId()註解,
這個註解有兩個屬性,value和type

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface TableId {
    String value() default "";

    IdType type() default IdType.NONE;
}

這個IdType就是我們的id生成策略

public enum IdType {
    AUTO(0),
    NONE(1),
    INPUT(2),
    ID_WORKER(3),
    UUID(4),
    ID_WORKER_STR(5);

    private final int key;

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

    public int getKey() {
        return this.key;
    }
}

下面分別解釋

  • AUTO(0),自增,注意這裏再實體類中選擇這個屬性,一定要在數據庫中設置自增
  • 在這裏插入圖片描述
  • NONE(1),未設置
  • INPUT(2),手動輸入,一旦設置,就需要自己手動輸入
  • ID_WORKER(3),採用雪花算法生成的id(默認id生成方式)
  • UUID(4),全局uuid
  • ID_WORKER_STR(5);ID_WORKER(3)的字符串表示法

雪花算法的組成
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章