mybatisplus id生成策略
时间: 2023-09-06 21:12:53 浏览: 53
MyBatis-Plus 支持多种 ID 生成策略,下面列举了几种常用的生成策略:
- `ASSIGN_ID`:手动指定 ID 值,不使用任何生成策略。
- `AUTO`:自增长 ID,在数据库层面实现自增长。
- `UUID`:使用 UUID 作为 ID,通过 JDK 提供的 `java.util.UUID` 类生成唯一标识符。
- `ID_WORKER`:雪花算法生成的 64 位长整型 ID,通过 `IdWorker` 类生成。
- `ID_WORKER_STR`:雪花算法生成的字符串类型 ID,通过 `IdWorker` 类生成。
你可以根据具体需求选择合适的 ID 生成策略,并在实体类对应字段上通过注解 `@TableId` 指定使用的策略。例如:
```java
@TableId(type = IdType.AUTO)
private Long id;
```
这样配置后,MyBatis-Plus 将会根据数据库的自增长特性来生成 ID。另外,如果使用雪花算法生成 ID,可以使用 `@TableId(type = IdType.ID_WORKER)` 或 `@TableId(type = IdType.ID_WORKER_STR)` 来指定。
需要注意的是,不同数据库对于自增长 ID 的支持程度可能会有所不同,请根据实际情况选择合适的策略。
相关问题
mybatisplus自定义ID生成策略
在MybatisPlus中,我们可以通过自定义ID生成器来实现自定义ID生成策略。以下是两种自定义ID生成器的方式:
1. 使用配置类
```java
@Bean
public IdentifierGenerator idGenerator() {
return new CustomIdGenerator();
}
```
2. 通过MybatisPlusPropertiesCustomizer自定义
```java
@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
return plusProperties -> plusProperties.getGlobalConfig().setIdentifierGenerator(new CustomIdGenerator());
}
```
其中,CustomIdGenerator是我们自定义的ID生成器类,需要实现IdentifierGenerator接口,并重写generate方法来生成自定义的ID。
mybatisplus主键生成策略
Mybatis-Plus支持以下主键生成策略:
1. ASSIGN_ID:手动分配ID,需要在插入时设置主键值。
2. AUTO:自动增长,需要数据库支持自增长。
3. UUID:使用UUID作为主键,需要在实体类中使用`@TableId(type = IdType.UUID)`注解。
4. ID_WORKER:使用雪花算法生成ID,需要在实体类中使用`@TableId(type = IdType.ID_WORKER)`注解。
5. ID_WORKER_STR:使用雪花算法生成字符串类型的ID,需要在实体类中使用`@TableId(type = IdType.ID_WORKER_STR)`注解。
可以在配置文件中配置全局主键生成策略:
```properties
# 全局主键生成策略
mybatis-plus.global-config.db-config.id-type=ID_WORKER
```