mybatisplus主键生成策略
时间: 2023-09-04 09:13:20 浏览: 66
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
```
相关问题
mybatisplus 指定主键生成策略
MyBatis Plus 是一个优秀的持久层框架,它为我们提供了很多方便的操作数据库的功能。在 MyBatis Plus 中,指定主键生成策略有以下几种方式可以实现。
1. 使用数据库自动生成主键:在数据库中创建表时,可以设置主键为自增或者是使用其他的方式生成主键。在 MyBatis Plus 中,可以通过使用 `@TableId` 注解的 `type` 属性来指定主键生成策略为数据库自动生成,例如 `@TableId(type = IdType.AUTO)`。
2. 使用雪花算法生成主键:雪花算法是一种分布式唯一 ID 生成算法,可以在分布式环境下生成全局唯一的 ID。在 MyBatis Plus 中,可以通过使用 `@TableId` 注解的 `type` 属性来指定主键生成策略为雪花算法,例如 `@TableId(type = IdType.ASSIGN_ID)`。
3. 自定义主键生成策略:如果需要自定义主键生成策略,可以实现 `IdentifierGenerator` 接口,并在实现类中重写 `nextId` 方法来生成主键。然后,在实体类中使用 `@TableId` 注解的 `type` 属性来指定主键生成策略为自定义,例如 `@TableId(type = IdType.ID_WORKER, generator = CustomIdGenerator.class)`。
总的来说,MyBatis Plus 提供了多种指定主键生成策略的方式,可以根据不同的需求选择合适的方式来生成主键。
mybatisplus自定义主键生成策略
mybatisplus支持自定义主键生成策略,需要实现IdentifierGenerator接口。具体步骤如下:
1. 实现IdentifierGenerator接口,重写generate方法,生成自定义主键。
```java
public class CustomIdGenerator implements IdentifierGenerator {
@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
// 生成自定义主键
return "custom_id_" + UUID.randomUUID().toString();
}
}
```
2. 在实体类中使用@TableId注解指定主键生成策略为自定义。
```java
public class User {
@TableId(type = IdType.ASSIGN_ID, generator = "customIdGenerator")
private String id;
// ...
}
```
3. 在MybatisPlus配置类中注册自定义主键生成策略。
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public IdentifierGenerator customIdGenerator() {
return new CustomIdGenerator();
}
}
```