mybatisplus----CRUD操作之插入操作,及主键自增策略(雪花算法简述)

测试插入:

    //测试插入
    @Test
    void testInsert(){
        User user=new User();
        user.setAge(3);
        user.setEmail("269805365@qq.com");
//        user.setId();  我们故意不进行设置id,我们会发现会自动生成id
        user.setName("yfsn");
        int insert = userMapper.insert(user);
        System.out.println(insert);
        System.out.println(user);//经过输出我们会发现,自动设置id之后这个id会回填的我们的java对象中


    }

结果:

 

 

 

数据库插入的id的默认值为:全局的唯一id

 

 

 

主键生成策略

默认ID_WORKER全局唯-id

分布式系统唯-id生成

 

雪花算法:snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID,其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个符号位,永远是0。

 

 主键自增

 

我们需要配置主键自增:
1、体段上Tablerd(type-IdType.AUTO)

 

 


2、数据库字段一定要是自增!

 

 

 

 

再次测试:

 

 

关于@TableId注解type值的其他参数解释

其与的源码解释
public enum IdType{


AUTO(0),//数据库id自增NONE(1),//未设置主键


INPUT(2),//手动输入

ID-WORKER(3),//默认的全局唯一id

UUID(4),//全局唯-id uuid ID WORKERSTRI5);//ID_WORKER字符串表示法

 

 }

 

posted @ 2020-11-13 11:55  Joker-0927  阅读(1230)  评论(0编辑  收藏  举报
// 侧边栏目录