狂神说Java学习笔记:https://www.bilibili.com/video/BV17E411N7KN?p=5
一、插入User
@Test
public void insertTest(){
User user = new User();
user.setName("liniqngxia");
user.setAge(18);
user.setEmail("[email protected]");
int result = userMapper.insert(user);
System.out.println(result);
System.out.println(user);
}
二、分析测试日志
- 由日志可知,虽然插入数据时我们没有插入id,但自动生成了id并同输入数据一起插入到数据库中
- 此自动生成的id是全局唯一的
- 默认主键生成有多种策略,本处采用的是Twitter的snowflake算法:用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号,最后一位永远是0
三、主键自增配置
- 在数据库勾选主键的自增选项
- 在代码中给相应的字段加注解:@TableId(type = IdType.AUTO)
public enum IdType {
AUTO(0), //数据库id自增
NONE(1), //未设置主键
INPUT(2), //手动输入,需要自己配置id
ID_WORKER(3), //全局唯一id(默认)
UUID(4), //全局唯一id(uuid)
ID_WORKER_STR(5); //ID_WORKER字符串表示法
}