我建的表是这样的:
create table user
(
id bigint auto_increment comment 'id'
primary key,
username varchar(256) null comment '用户昵称',
userAccount varchar(256) null comment '账号',
avatarUrl varchar(1024) null comment '用户头像',
gender tinyint null comment '性别',
userPassword varchar(512) not null comment '明码',
phone varchar(128) null comment '电话',
email varchar(512) null comment '邮箱',
userStatus int default 0 not null comment '用户转态 0 失常',
createTime datetime default CURRENT_TIMESTAMP null comment '创立工夫',
updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新工夫',
isDelete tinyint default 0 null invisible comment '是否逻辑删除 默认 0'
)
comment '用户';
能够看到我的 id 是 bigint 自增,但自测的时候:
@SpringBootTest
class UserServiceTest {
@Resource
private UserService userService;
@Test
void testAdduser() {User user = new User();
user.setUsername("leoleo");
user.setUserAccount("leoleoleo");
user.setAvatarUrl("https://avatar-static.segmentfault.com/274/037/2740371703-61baf9dec42e4_huge256");
user.setGender(0);
user.setUserPassword("12345678");
user.setPhone("123");
user.setEmail("456");
boolean res = userService.save(user);
System.out.println(user.getId());
Assertions.assertTrue(res);
}
发现数据库中的数据是这样的:
我的 id 变成了 161343xxxxxx 一长串,,我回去看我的建表语句的确没问题,之前没用 MyBatisPlus 也失常,那么问题出在 MyBatisPlus 上,回到 MyBatisPlus 官网文档一查,果然,MyBatisPlus 默认是用的雪花算法实现也就是下图中的 ASSIGN_ID, 如果不想用雪花算法在 yml 配置文件中加上一句
mybatis-plus:
configuration:
db-config:
id-type: auto
就行了。
参考 MyBatisPlus 官网文档 https://baomidou.com/pages/22…