在MyBatis-Plus中,主键ID的生成规则可以通过注解或配置文件进行配置。以下是常见的主键ID生成规则:
- 自增主键(AUTO_INCREMENT):使用数据库的自增特性生成主键ID。在MySQL中,可以使用
@TableId(type = IdType.AUTO)
注解或配置文件中的idType = AUTO
来指定该规则。 - UUID主键:使用UUID(通用唯一标识符)生成主键ID。在MySQL中,可以使用
@TableId(type = IdType.UUID)
注解或配置文件中的idType = UUID
来指定该规则。 - 雪花算法主键(Snowflake):使用Twitter的雪花算法生成分布式唯一ID。在MySQL中,可以使用
@TableId(type = IdType.ASSIGN_ID)
注解或配置文件中的idType = ASSIGN_ID
来指定该规则。 - 自定义主键生成策略:可以通过实现
IdentifierGenerator
接口来自定义主键生成策略。在自定义的主键生成策略中,你可以根据自己的需求生成唯一的主键ID,并将其应用于实体类的主键字段。
我们来看一下MyBatisPlus提供的IdType枚举类型
代码语言:javascript复制@Getter
public enum IdType {
/**
* 数据库ID自增
* <p>该类型请确保数据库设置了 ID自增 否则无效</p>
*/
AUTO(0),
/**
* 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
*/
NONE(1),
/**
* 用户输入ID
* <p>该类型可以通过自己注册自动填充插件进行填充</p>
*/
INPUT(2),
/* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */
/**
* 分配ID (主键类型为number或string),
* 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法)
*
* @since 3.3.0
*/
ASSIGN_ID(3),
/**
* 分配UUID (主键类型为 string)
* 默认实现类 {@link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace("-",""))
*/
ASSIGN_UUID(4);
private final int key;
IdType(int key) {
this.key = key;
}
}
自增主键
代码语言:javascript复制 @TableId(type = IdType.AUTO)
private String id;
特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com 第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤