雪花算法

目录

一、什么是雪花算法

二、使用雪花算法

​三、使用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

修改注解中的参数

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

相关推荐
rKWP8gKv78 分钟前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫10 分钟前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_4352879211 分钟前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本13 分钟前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi18 分钟前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
yaoxin52112337 分钟前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
dFObBIMmai1 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw01 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl200209251 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛139246256732 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑