通过继承IdentifierGenerator接口,实现mybaltisplus 的uuidd带下划线
时间: 2024-11-05 07:24:51 浏览: 32
在MybatisPlus中,如果你想要自定义UUID主键生成策略并且带有下划线,可以创建一个实现了`com.baomidou.mybatisplus.core.increment.IdentifierGenerator`接口的类。这个接口主要用于处理自增、时间戳等主键生成策略。为了得到带下划线的UUID,你可以扩展`SnowflakeIdWorker`类,因为MybatisPlus的默认主键生成器通常是基于雪花算法生成的。
首先,你需要实现`IdentifierGenerator`接口,比如这样:
```java
import com.baomidou.mybatisplus.core.increment.IdWorker;
import java.util.UUID;
public class CustomUUidGenerator extends IdWorker implements IdentifierGenerator {
@Override
public long nextId() {
// 生成一个带有下划线的UUID
String uuidWithoutDash = UUID.randomUUID().toString();
return Long.parseLong(uuidWithoutDash.replace("-", ""), 16);
}
}
```
在这个例子中,我们重写了`nextId()`方法,将UUID转换成无下划线的形式,然后再转换回数字形式作为主键。
接下来,在配置MybatisPlus时,将你的自定义生成器注册到全局配置中:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public GlobalConfig globalConfig() {
GlobalConfig config = new GlobalConfig();
config.setDatabaseId("db_id");
config.setIdGenerator(new CustomUUidGenerator()); // 注册你的生成器
return config;
}
}
```
现在,每次保存对象时,MybatisPlus会使用你提供的`CustomUUidGenerator`来生成带下划线的UUID作为主键。
阅读全文