目录
使用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字段必须勾选主键自增,否则会报错


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

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





