MybatisPlus之插入操作、雪花算法与主键生成策略

本文介绍了如何使用MybatisPlus进行插入操作,并详细探讨了雪花算法及其策略。雪花算法是一种分布式ID生成方案,确保全球唯一性,由Twitter开源。文章详细解释了算法的结构,包括时间戳、机器ID和流水号。同时,讨论了雪花算法的几种策略,如ID_WORKER和 AUTO(主键自增),并展示了实际的插入操作示例。

目录

使用MybatisPlus执行插入操作

雪花算法

雪花算法的策略 


 

使用MybatisPlus执行插入操作

 

我们插入一条记录

    @Test
    public void testInsert(){
        User user = new User();
        user.setName("钓鱼者");
        user.setAge(3);
        user.setEmail("123456789@qq.com");

        int result = userMapper.insert(user);   //帮我们自动生成id
        System.out.println(result); //受影响的行数
        System.out.println(user);   //查看插入的记录信息
    }

可以看到受影响的行数是1,并且新加入的这行信息自动生成了id字段

 

 

雪花算法

 

说雪花算法前,先说主键生成策略。即根据什么策略自动生成主键id,雪花算法是具体的一种实现方式。

雪花算法是Twitter开源的分布式ID生成算法,结果是一个long类型的ID。其核心思想是使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit是机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个占位符,永远是0.可以保证几乎全球唯一。

 

 

雪花算法的策略 

 

有下列五类

public enum IdType {
  AUTO(0), // 数据库id自增
  NONE(1), // 未设置主键
  INPUT(2), // 手动输入
  ID_WORKER(3), // 默认的全局唯一id
  UUID(4), // 全局唯一id uuid
  ID_WORKER_STR(5); //ID_WORKER 字符串表示法
}

 

我们可以指定其中的一种 ,默认是ID_WORKER。注意,如果设置为AUTO自增,你的数据表id字段必须勾选主键自增,否则会报错

再次执行插入,实现了主键自增

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值