mybatis plus主鍵策略

2021-10-01 08:45:05 字數 1328 閱讀 3327

mp 支援多種主鍵策略 預設是推特的「」 雪花演算法「」 ,也可以設定其他策略下面我演示主鍵策略使用

mp的主鍵定義在乙個乙個列舉類中 原始碼如下

package com.baomidou.mybatisplus.annotation;

public enum idtype

public int getkey()

1,區域性主鍵策略實現

在實體類中 id屬性加註解

@tableid(type = idtype.auto) 主鍵自增 資料庫中需要設定主鍵自增

private long id;

@tableid(type = idtype.none) 預設 跟隨全域性策略走

private long id;

@tableid(type = idtype.uuid) uuid型別主鍵

private long id;

@tableid(type = idtype.id_worker) 數值型別 資料庫中也必須是數值型別 否則會報錯

private long id;

@tableid(type = idtype.id_worker_str) 字串型別 資料庫也要保證一樣字元型別

private long id;

@tableid(type = idtype.input) 使用者自定義了 資料型別和資料庫保持一致就行

private long id;

2,全域性主鍵策略實現
#mybatis

mybatis-plus:

#實體掃瞄,多個package用逗號或者分號分隔

typealiasespackage: **.*.*.*.*

global-config:

#資料庫相關配置

db-config:

#主鍵型別 auto:"資料庫id自增", input:"使用者輸入id", id_worker:"全域性唯一id (數字型別唯一id)", uuid:"全域性唯一id uuid";表示全域性主鍵都採用該策略(如果全域性策略和區域性策略都有設定,區域性策略優先順序高)

id-type: auto

#欄位策略 ignored:"忽略判斷",not_null:"非 null 判斷"),not_empty:"非空判斷"

field-strategy: not_null

#駝峰下劃線轉換

column-underline: true

logic-delete-value: -1

logic-not-delete-value: 0

Mybatis plus主鍵策略

如果有三個資料表,第乙個資料表由10000個資料,最後一段資料的id 10000,那麼第二個資料表的第乙個id 10001,以此類推,第三個資料表的id 20001 30000,那麼第二個和第三個表的首個資料id值,就需要得到上乙個表的最後乙個id值,再加1,才是本資料表的起始id值。排序不方便 假...

Mybatis plus之主鍵策略

執行結果可以看出user中多了乙個id 主鍵策略 uuid,自增id,雪花演算法,redis,zookeeper uuid 無排序,太長了 自增id 在單個資料庫或讀寫分離或一主多從的情況下,只有乙個主庫可以生成。有單點故障的危險 twitter的snowflake演算法 snowflake是twi...

mybatis plus主鍵生成策略

我們平時使用主鍵時會為主鍵加上自增長策略,like this auto increment 但有時自增長策略並不能滿足我們的專案需求,那我們就需要加一些其他的生成策略。讓我們列一下幾種常用主鍵生成 策略,以及在專案中設定方法 no1自動增長 自動增長是我們見過的最基本的生成策略,它遵循的是從1開始依...