mp 支援多種主鍵策略 預設是推特的「」 雪花演算法「」 ,也可以設定其他策略下面我演示主鍵策略使用
mp的主鍵定義在乙個乙個列舉類中 原始碼如下
1,區域性主鍵策略實現package com.baomidou.mybatisplus.annotation;
public enum idtype
public int getkey()
在實體類中 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開始依...