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

目录

使用MybatisPlus执行插入操作

雪花算法

雪花算法的策略 


 

使用MybatisPlus执行插入操作

 

我们插入一条记录

    @Test
    public void testInsert(){
        User user = new User();
        user.setName("钓鱼者");
        user.setAge(3);
        user.setEmail("[email protected]");

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

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

MybatisPlus之插入操作、雪花算法与主键生成策略_第1张图片

 

 

雪花算法

 

说雪花算法前,先说主键生成策略。即根据什么策略自动生成主键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字段必须勾选主键自增,否则会报错

MybatisPlus之插入操作、雪花算法与主键生成策略_第2张图片

MybatisPlus之插入操作、雪花算法与主键生成策略_第3张图片

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

MybatisPlus之插入操作、雪花算法与主键生成策略_第4张图片

你可能感兴趣的:([MyBatis-Plus])