自 3.3.0 开始,默认使用雪花算法+UUID
(不含中划线)
自定义示例工程:
方法 | 主键生成策略 | 主键类型 | 说明 |
nextId |
ASSIGN_ID, |
Long, Integer, String |
支持自动转换为 String 类型,但数值类型不支持自动转换,需精准匹配,例如返回 Long,实体主键就不支持定义为 Integer |
nextUUID |
ASSIGN_UUID, |
String |
默认不含中划线的 UUID 生成 |
@Component
public class CustomIdGenerator implements IdentifierGenerator {
@Override
public Long nextId(Object entity) {
//可以将当前传入的class全类名来作为bizKey,或者提取参数来生成bizKey进行分布式Id调用生成.
String bizKey = entity.getClass().getName();
//根据bizKey调用分布式ID生成
long id = ....;
//返回生成的id值即可.
return id;
}
}
@Bean
public IdentifierGenerator idGenerator() {
return new CustomIdGenerator();
}
@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
return plusProperties -> plusProperties.getGlobalConfig().setIdentifierGenerator(new CustomIdGenerator());
}
<bean name="customIdGenerator" class="com.baomidou.samples.incrementer.CustomIdGenerator"/>
<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<property name="identifierGenerator" ref="customIdGenerator"/>
</bean>
@Bean
public GlobalConfig globalConfig() {
GlobalConfig conf = new GlobalConfig();
conf.setIdentifierGenerator(new CustomIdGenerator());
return conf;
}
BlockAttackInnerInterceptor针对update和delete语句,作用:阻止恶意的全表更新删除注入MybatisPlusInterceptor类,并配...
查询语句是MyBatis中最常用的元素之一——光能把数据存到数据库中价值并不大,还要能重新取出来才有用,多数应用也都是查询比修...
当在 Spring 中定义一个 bean 时,你必须声明该 bean 的作用域的选项。例如,为了强制 Spring 在每次需要时都产生一个新的 bean ...
JSP开发环境是您用来开发、测试和运行JSP程序的地方。本节将会带您搭建JSP开发环境,具体包括以下几个步骤。配置Java开发工具(J...
Servlet 网页重定向当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向。当然,也可能是为了负载...