1. 程式人生 > 實用技巧 >MyBatis-Plus日誌配置

MyBatis-Plus日誌配置

SQL是不可見的,所以開發的時候我們得知道它是怎麼執行的,所以我們得看日誌;但上線時得去除掉,它是浪費時間的。

#日誌配置
#org.apache.ibatis.logging.stdout.StdOutImpl 預設的  控制檯輸出  其他的得匯入相應的配置 
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 

輸出日誌

配置好日誌後就可以以後學習或者做專案的時候檢視自動生成的SQL了,你會愛上他的!

CRUD擴充套件

插入操作

//測試插入
    @Test
    public void InsertUser(){
        SysUser sysUser = new SysUser();
        sysUser.setUsername("admin6");
        sysUser.setPassword("123456");
        sysUser.setPhone(123456);
        sysUser.setEmail("[email protected]");

        int result = userMapper.insert(sysUser);//幫我們自動生成的id
        System.out.println(result);//受影響的行數
        System.out.println(sysUser);//發現id會自動回填
    }

資料庫插入的 id 預設值為:全域性的唯一id!

主鍵生成策略

預設@TableId(type = IdType.ID_WORKER) 全域性唯一id

分散式系統唯一id生成方案彙總連結:https://www.cnblogs.com/haoxinyue/p/5208136.html

雪花演算法:

snowflake是Twitter開源的分散式ID生成演算法,結果是一個long型的ID。其核心思想是:使用41bit作為毫秒數,10bit作為機器的ID(5個bit是資料中心,5個bit的機器ID),12bit作為毫秒內的流水號(意味著每個節點在每毫秒可以產生 4096 個 ID),最後還有一個符號位,永遠是0。可以保證幾乎全球唯一!

主鍵自增

需要配置主鍵自增:

1.實體類欄位 @TableId(type = IdType.AOUT)

2.資料庫欄位自增

3.再次測試插入即可!

其餘原始碼解釋

public enum IdType {
    AUTO(0), // 資料庫id自增
    NONE(1), // 未設定主鍵
    INPUT(2), // 手動設定
    ID_WORKER(3), // 預設的全域性唯一id
    UUID(4), // 全域性唯一id  UUID
    ID_WORKER_STR(5); // ID_WORKER 字串表示法
}

一旦使用 @TableId(type = IdType.INPUT)

手動輸入id,id就得自己配置了