课程名称:Spring Cloud+ Vue前后端分离开发企业级在线视频系统
课程章节:第5章 单表管理功能前后端开发
讲师姓名:甲蛙老师
课程内容:
新增大章功能的开发:增加新增大章功能,后端代码开发,完成前后端联调,保存成功
课程收获:
新增大章功能并不是简单的增删改查,其中有很多开发的细节需要注意
①为什么在新增操作中不使用自增id
自增ID至少存在三个问题:
1. id是连续的,容易被探测
2. 需要增加1次查询才能得到id的值
3. 在分布式存储中,id会出现重复
②为替换自增ID要使用UUID
UUID是根据机器、时间等多个维度生成的32位16进制数,绝大多数情况下不会重复,在UUID的基础上封装了8位短UUID
短ID是根据将32位ID,转为62进制8位ID,减少存储空间。
原理是将uuid转为10进制,再对62取余。
虽然有重复的风险(将4位16进制数转为62位一位数)但是一般项目足够使用
public static String getShortUuid() {
StringBuilder shortBuffer = new StringBuilder();
String uuid = UuidUtil.getUuid();
for (int i = 0; i < 8; i++) {
String str = uuid.substring(i * 4, i * 4 + 4);
int x = Integer.parseInt(str, 16);
shortBuffer.append(chars[x % 0x3E]); // 对62取余
}
return shortBuffer.toString();
}