MybatisPlus生成主键策略方法
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
在实体类当中使用@TableId注解配置id生成类型
@TableId(type = IdType.AUTO)
private String id;
- 同时配置了这两种策略时,局部字段的ID生成策略优先级高于全局的id生成策略
- 使用雪花算法生成ID后,再次切换为主键自增的ID生成策略后会导致起始序列过大(没有重置起始序列值)
- 另外如果原先指定了@TableId(type = IdType.AUTO),然后去除这部分代码,会发生Tuncate操作(即清空表并重置ID起始值)
因为一般数据库主键为String类型,所以接收类型为String,生成的uuid数据包含-,所以要去掉-,
java.util.UUID.randomUUID().toString().replace("-", "").toLowerCase();
也可以用 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>
当然这些只是我的建议,大家可以去找找其他的方法。
有知道其他方法的小伙伴们欢迎在底下留言,本人小白一枚轻喷!
Original: https://www.cnblogs.com/b10100912/p/16796560.html
Author: 面向CV工程师
Title: MybatisPlus生成主键策略方法
相关阅读
Title: Pandas的DataFrame & Series【详解】
Pandas数据结构
1.Series
2.DataFrame
3.从DataFrame中查询出Series
DataFrame: 二维数据、整个表格、多行多列

Series:一维数据,一行或者一列

import pandas as pd
import numpy as np
1、Series
Series是一种类似于一维数组的对象,它由一组数据〈不同数据类型)以及一组与之相关的数据标签(即索引)组成。
1.1仅有数据列表即可产生最简单的Series
左侧为索引,右侧为数据
s1=pd.Series([1,'x',5.7,7])
#左侧为索引,右侧为数据
s1
获取索引
s1.index
获取索引
s1.index
获取数据
s1.values
#获取数据
s1.values

1.2创建一个具有标签索引的Series
s2=pd.Series([1,'x',5.7,7],index=['d','b','a','c'])
s2
s2.index

1.3使用python字典创建Series
python字典和seires有着密不可分的关系
sdata={'apple':35,'tex':40,'bananan':20,'pearl':30}
s3=pd.Series(sdata)
s3

1.4根据标签索引查询数据
Original: https://blog.csdn.net/qq_46044325/article/details/126797541
Author: 编程贝多芬
Title: Pandas的DataFrame & Series【详解】
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/363395/
转载文章受原作者版权保护。转载请注明原作者出处!