插入用户(测试)
@Test
void insert() {
// 插入用户
User user = new User();
user.setAge(111);
user.setName("小学生");
user.setEmail("123321123321@qq.com");
int insert = userMapper.insert(user);
System.out.println(insert);
}
测试结果:
数据库插入的id为全局默认的id(ID_WORKER)
雪花算法
所有生成的id按时间趋势递增 整个分布式系统内不会产生重复id(因为有datacenterId和workerId来做区分)
id 上添加 @TableId(type = IdType.ID_WORKER)
package com.jia.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
// 对应数据库中的主键(uuid,自增id,雪花算法,redis,zookeeper)
@TableId(type = IdType.ID_WORKER)
private Long id;
private String name;
private int age;
private String email;
}
数据库插入的唯一 id 默认值:ID_WORKER
主键自增
1.实体类字段上的 @TableId(type = IdType.AUTO)
2.数据库字段一定要是自增
其他的源码解释
public enum IdType {
AUTO(0), // 数据库 id 自增
NONE(1), // 未设置主键
INPUT(2), // 手动输入
ID_WORKER(3), // 默认的全局 id
UUID(4), // 全局唯一 id (uuid)
ID_WORKER_STR(5); // ID_WORKER 字符串表示法
}