再上一篇博客中,我沒有插入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)的字符串表示法
雪花算法的組成