关于mybatis-plus:关于使用MyBatisPlus后id变一长串雪花算法的踩坑

我建的表是这样的:

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…

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理