雪花算法

目录

一、什么是雪花算法

二、使用雪花算法

​三、使用UUID


使用自增主键是数据库中常用的唯一标识,今天尝试使用mybatisplus来实现三种方式的主键ID

使用起来也很简单 用注解指定一下使用那种方式的主键

一、什么是雪花算法

一种特殊的算法可以计算得到一个唯一标识

二、使用雪花算法

java 复制代码
     /**
     * 数据库ID自增
     * <p>该类型请确保数据库设置了 ID自增 否则无效</p>
     */
    AUTO(0),
     /* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */
    /**
     * 分配ID (主键类型为number或string),
     * 默认实现类 {@link             com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(雪花算法)
     *
     * @since 3.3.0
     */
    ASSIGN_ID(3),
    /**
     * 分配UUID (主键类型为 string)
     * 默认实现类 {@link     com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator}(UUID.replace("-",""))
     */
    ASSIGN_UUID(4);
java 复制代码
 @RequestMapping("/test")
    void test() {
        //目前这个id是没有填充的
        SysUser sysUser = new SysUser();
        sysUser.setUserAccount("153abc");
        sysUser.setUserPassword("h12345");
        sysUser.setCreateBy(67L);
        sysUser.setUpdateBy(99L);
        System.out.println("调用insert之前的id:" + sysUser.getUserId());
        sysUserService.insertUser(sysUser);
        //调用之后,数据不仅会保存到数据库,而且会自动更新当前对象的值
        System.out.println("调用insert之后的id:" + sysUser.getUserId());
    }

数据库表中也会多一条数据

三、使用UUID

修改注解中的参数

数据不仅更新到数据库了 也帮我们更新了当前这个对象中的数据

相关推荐
张洛闻Eren5 小时前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
mldong6 小时前
"applicant" 契约:退回发起人的闭环设计
java·架构
布莱克6056 小时前
理解索引:从概念到实践
数据库·mysql
月华路6 小时前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
gugucoding6 小时前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
zww89491117 小时前
校园跑腿系统开发实战指南:从需求分析到上线部署全流程解析
java
Fluxart.ai7 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化
名字还没想好☜8 小时前
Java 线上内存泄漏排查实战:jmap 导堆、MAT 找 GC Roots 与四类常见泄漏
java·开发语言·jvm·内存泄漏
我不是疯子是傻子9 小时前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶10 小时前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba