MybatisPlus生成主键策略方法全局id生成策略【因为是全局id所以不推荐】SpringBoot集成Mybatis-Plus
在yaml配置文件中添加MP配置
mybatis-plus:global-config:db-config:#主键类型(auto:"自增id",assign_id:"全局唯一id(雪花算法,Long或者String类型)",assign_uuid:"全局唯一id(无中划线的uuid)",input:"自行设置id,默认null",none:"不设置主键id")id-type: assign_id
局部id生成策略【局部id非常推荐】在实体类当中使用@TableId注解配置id生成类型
@TableId(type = IdType.AUTO)private String id;
注意事项:
- 同时配置了这两种策略时,局部字段的ID生成策略优先级高于全局的id生成策略
- 使用雪花算法生成ID后 , 再次切换为主键自增的ID生成策略后会导致起始序列过大(没有重置起始序列值)
- 另外如果原先指定了@TableId(type = IdType.AUTO),然后去除这部分代码,会发生Tuncate操作(即清空表并重置ID起始值)
java.util.UUID.randomUUID().toString();
也可以用
hutool
中的生成方法,下面是以int类型为例子int context = Math.abs(IdUtil.fastSimpleUUID().hashCode());
也可以用当前时间戳+随机id的形式生成唯一的 , 下面是以String类型为例子
Date date = new Date();String context = DateUtil.format(date,"yyyyMMdd") +Math.abs(IdUtil.fastSimpleUUID().hashCode());
使用hutool需要导入依赖<!--Hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.19</version></dependency>
当然这些只是我的建议 , 大家可以去找找其他的方法 。有知道其他方法的小伙伴们欢迎在底下留言,本人小白一枚轻喷!【MybatisPlus生成主键策略方法】
推荐阅读
- spring boot使用swagger生成api接口文档
- 15 基于SqlSugar的开发框架循序渐进介绍-- 整合代码生成工具进行前端界面的生成
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
- 带你读AI论文丨ACGAN-动漫头像生成
- 一键生成通用高亮代码块到剪贴板,快捷粘贴兼容 TT/WX/BJ 编辑器
- spring boot项目使用mybatis-plus代码生成实例
- 好用的文章生成软件有哪些
- 5种分布式ID生成方案 分布式ID详解
- aardio + Python 可视化快速开发桌面程序,一键生成独立 EXE
- 条形码生成器在线 条形码生成器