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字符串表示法

 

 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM