1. 程式人生 > 實用技巧 >mybatisplus----CRUD操作之插入操作,及主鍵自增策略(雪花演算法簡述)

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

測試插入:

    //測試插入
    @Test
    void testInsert(){
        User user=new User();
        user.setAge(3);
        user.setEmail("[email protected]");
//        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字串表示法

}