mybatis的id策略

mybatis的id策略

在我们的id上可以加上@TableId()注解

@TbleId(type = ???)
private Long id;

这个注解有两个属性,valuetype

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

    IdType type() default IdType.NONE;
}

value就是给个默认值,也可在郁闷了,properties里配,就不解释了
这个type就是id生成策略

public enum IdType {
    AUTO(0),//自增
    NONE(1),
    INPUT(2),
    ASSIGN_ID(3),
    ASSIGN_UUID(4),
    /** @deprecated */
    @Deprecated
    ID_WORKER(3),
    /** @deprecated */
    @Deprecated
    ID_WORKER_STR(3),
    /** @deprecated */
    @Deprecated
    UUID(4);

    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生成方式)这个默认方式是自动帮你生成i的id默认生成方式,AUTO模式的默认,你只写这东西是不行的,可看下篇文章
UUID(4),全局的uuid,自动帮你搞
ID_WORKER_STR(5);ID_WORKER(3)的字符串表示法
雪花算法生成id
时间戳+机器的id+序列号
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/code_mzh/article/details/106848662