国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis-plus id生成策略

這篇具有很好參考價值的文章主要介紹了Mybatis-plus id生成策略。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.1、為什么選擇不同的id生成策略

1.2、策略種類

1.2.1、AUTO(自動增長策略)

1.2.3、ASSIGN_ID(雪花算法)

1.2.4、ASSIGN_UUID(不含中劃線的UUID)

1.2.5、NONE(無狀態(tài))

1.3、注意


1.1、為什么選擇不同的id生成策略

1、Mybatis-plus提供了多種主鍵生成策略, 可以在Pojo類中主鍵上加注解進行配置,例如數(shù)據(jù)庫主鍵自增 @TableId(type=IdType.AUTO)

2、不同的表應用不同的id生成策略:

  • 日志:自增(1,2,3,4,……)
  • 購物訂單:特殊規(guī)則(FQ23948AK3843)
  • 外賣單:關聯(lián)地區(qū)日期等信息(10 04 20200314 34 91)
  • 關系表:可省略id
  • ……

3、表現(xiàn)形式

  • 名稱 @TableId
  • 類型 屬性注解
  • 位置 模型類中用于表示主鍵的屬性定義上方
  • 作用 設置當前類中主鍵屬性的生成策略
  • 相關屬性
    • value(默認):設置數(shù)據(jù)庫表主鍵名稱
    • type:設置主鍵屬性的生成策略,值參照IdType的枚舉值

1.2、策略種類

1.2.1、AUTO(自動增長策略)

AUTO自動增長策略,這個配合數(shù)據(jù)庫使用,Mysql可以,但是Oracle不行。不配合會報錯。

在主鍵字段上加上?@TableId(type = IdType.AUTO)

@Data
public class UserInfo {
    //指定主鍵使用數(shù)據(jù)庫ID自增策略
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String userName;
    private String passWord;
}

1.2.2、Input(自定義輸入策略)

自定義輸入策略:如果不想使用數(shù)據(jù)庫的自增主鍵,也可以使用INPUT進行自己傳遞主鍵即可,進行插入工作,但在插入之前一定要檢查數(shù)據(jù)庫是否已經存在了該主鍵。

Mybatis-Plus 內置了如下數(shù)據(jù)庫主鍵序列:

DB2KeyGenerator
H2KeyGenerator
KingbaseKeyGenerator
OracleKeyGenerator
PostgreKeyGenerator

使用方法如下所示:

首先添加@Bean

 @Bean
    public OracleKeyGenerator oracleKeyGenerator(){
        return new OracleKeyGenerator();
    }

然后實體類配置主鍵?Sequence,指定主鍵策略為IdType.INPUT即可:

@Data
@KeySequence(value = "SEQ_ACL_ROLE" , clazz = Integer.class)
public class AclUser implements Serializable {
    private static final long serialVersionUID = 780903014942735924L;
    @TableId(value = "ID",type = IdType.INPUT)
    private Integer id;

1.2.3、ASSIGN_ID(雪花算法)

如果不設置type值,默認則使用IdType.ASSIGN_ID策略(自 3.3.0 起)。該策略會使用雪花算法自動生成主鍵 ID,主鍵類型為 Long 或 String。

雪花算法(SnowFlake)是 Twitter 開源的分布式 id 生成算法。其核心思想就是:使用一個 64 bit 的 long 型的數(shù)字作為全局唯一 id。在分布式系統(tǒng)中的應用十分廣泛,且 ID 引入了時間戳,基本上保持自增的。

使用方法
指定主鍵生成策略使用雪花算法(默認策略)

@Data
public class UserInfo {
    //指定主鍵生成策略使用雪花算法(默認策略)
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    private String userName;
    private String passWord;
}

1.2.4、ASSIGN_UUID(不含中劃線的UUID)

如果使用?IdType.ASSIGN_UUID?策略,則會自動生成不含中劃線的?UUID?作為主鍵,主鍵類型為?String。

@Data
public class UserInfo {
    //指定主鍵生成策略為不含中劃線的UUID
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String userName;
    private String passWord;
}

1.2.5、NONE(無狀態(tài))

如果使用?IdType.NONE?策略,表示未設置主鍵類型(注解里等于跟隨全局,全局里約等于?INPUT

假設我們希望默認全部都使用?AUTO?策略(數(shù)據(jù)庫ID自增),那么可以在?application.properties?中添加如下配置進行修改:

mybatis-plus.global-config.db-config.id-type=auto

1.3、注意

注意事項:Mysql?的默認值只有在insert語句中沒有這個字段時才會生效,如果insert中有插入該字段而該字段取值又為null,null值將被插入到表中,默認值此時失效。使用Mybatis操作也是一樣的道理,只要這個實體里面含有這個字段,并且值為null,則不會插入默認值。文章來源地址http://www.zghlxwxcb.cn/news/detail-424911.html

到了這里,關于Mybatis-plus id生成策略的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • spring boot集成mybatis-plus——Mybatis Plus 新增數(shù)據(jù)并返回主鍵 ID(圖文講解)

    spring boot集成mybatis-plus——Mybatis Plus 新增數(shù)據(jù)并返回主鍵 ID(圖文講解)

    ?更新時間 2023-01-10 15:37:37 大家好,我是小哈。 本小節(jié)中,我們將學習如何通過 Mybatis Plus 框架給數(shù)據(jù)庫表新增數(shù)據(jù),主要內容思維導圖如下: Mybatis Plus 新增數(shù)據(jù)思維導圖 為了演示新增數(shù)據(jù),在前面小節(jié)中,我們已經定義好了一個用于測試的用戶表, 執(zhí)行腳本如下: 定義一

    2024年02月02日
    瀏覽(41)
  • MyBatis-Plus中的更新操作(通過id更新和條件更新)

    MyBatis-Plus中的更新操作(通過id更新和條件更新)

    目錄 前言 一、通過id更新 二、條件更新 2.1 使用QueryWrapper進行條件更新 2.2 使用UpdateWrapper進行條件更新 總結? 本文學習MP中的更新操作方法,帶大家一起查看源碼,了解更新操作的方法。學會熟練地去運用更新方法解決自己在項目中的問題。 Mybatis-Plus知識點[MyBatis+MyBatis-Pl

    2024年02月06日
    瀏覽(19)
  • 【Mybatis-Plus】代碼生成器

    【Mybatis-Plus】代碼生成器

    目錄 安裝插件 數(shù)據(jù)庫建表? Other Config Database Code Generator 根據(jù)創(chuàng)建好的數(shù)據(jù)庫表,來直接生成代碼 ? 點開之后有兩個功能 1.數(shù)據(jù)庫配置 2.代碼生成 首先點開這個配置數(shù)據(jù)庫 ? ? 配置完數(shù)據(jù)庫后,再點擊這個功能 ? 勾選完畢之后,點擊code generator ? 這幾個包就自動生成出來

    2024年02月06日
    瀏覽(95)
  • Mybatis-plus 代碼生成器

    Mybatis-plus 代碼生成器

    1、pom.xml 2、mybatis-generator.xml 這里可以生成一個example類 什么是example類? Mybatis-Plus的代碼生成器可以自動生成一些基本的代碼文件,其中包括了Example(查詢條件構造器)類。如下是Example類的大致解釋和用法: Example類是在Mybatis-Plus中用于構建復雜條件查詢的常用工具類,它是

    2024年02月01日
    瀏覽(92)
  • MyBatis-Plus 可視化代碼生成器mybatis-plus-generator-ui

    MyBatis-Plus 可視化代碼生成器mybatis-plus-generator-ui

    在基于Mybatis的開發(fā)模式中,很多開發(fā)者還會選擇Mybatis-Plus來輔助功能開發(fā),以此提高開發(fā)的效率。雖然Mybatis也有代碼生成的工具,但Mybatis-Plus由于在Mybatis基礎上做了一些調整,因此,常規(guī)的生成工具生成的代碼還有一些不太符合預期。而且對于多數(shù)據(jù)庫的支持不是很好。

    2024年02月04日
    瀏覽(19)
  • 在SpringBoot使用MyBatis-Plus代碼生成器

    在SpringBoot使用MyBatis-Plus代碼生成器

    文章目錄 前言 一、引入依賴 二、使用步驟 1.創(chuàng)建一個類(例如CodeGenerator) 2.編輯生成模板 三、一鍵生成代碼 ?結尾 在SpringBoot中,通過引入MyBatis-Plus 實現(xiàn)數(shù)據(jù)庫代碼生成器,我還寫好了一些模板方法,可一鍵生成。 注意 適用版本:mybatis-plus-generator 3.5.1 及其以上版本 在

    2024年02月02日
    瀏覽(28)
  • Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代碼自助生成器

    Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代碼自助生成器

    引用官方文檔上的簡介: 提供交互式的Web UI用于生成兼容mybatis-plus框架的相關功能代碼,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定義模板以及各類輸出參數(shù),也可通過SQL查詢語句直接生成代碼。 文檔 github: https://github.com/davidfantasy/mybatis-plus-generator-ui gitee: https://g

    2024年02月10日
    瀏覽(24)
  • 如何利用Mybatis-Plus自動生成代碼(超詳細注解)

    如何利用Mybatis-Plus自動生成代碼(超詳細注解)

    1、簡介 MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window)的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生。 特性 無侵入:只做增強不做改變,引入它不會對現(xiàn)有工程產生影響,如絲般順滑 損耗?。簡蛹磿詣幼⑷牖?CURD,性

    2024年02月01日
    瀏覽(20)
  • 自動化生成代碼:MyBatis 的 Generator與MyBatis-Plus 的 AutoGenerator

    自動化生成代碼:MyBatis 的 Generator與MyBatis-Plus 的 AutoGenerator

    自動化生成代碼是現(xiàn)在一種非常常見的技術,它可以大大提高開發(fā)效率,減少重復勞動。而在 Java 開發(fā)中,MyBatis 是一個非常流行的 ORM 框架,而其中的 Generator 和 MyBatis-Plus 中的 AutoGenerator 是兩個非常好用的自動化代碼生成工具,下面我們來分別介紹一下它們的使用。 MyBati

    2024年02月03日
    瀏覽(20)
  • 【重要】springboot實戰(zhàn)(六)之mybatis-plus代碼自動生成器

    【重要】springboot實戰(zhàn)(六)之mybatis-plus代碼自動生成器

    目錄 環(huán)境: 步驟: 1.添加依賴 2.配置代碼 3.運行 測試 1.測試生成的service 1.1、service用法 2.分頁查詢 2.1、分頁插件配置? 2.2、測試 3.源碼 jdk:1.8 springboot版本:2.7.15 mybatis-plus版本:3.5.1以上 (本文章用的當前最新版本:3.5.3.2,代碼適用于3.5.1版本以上的版本) 在測試類中創(chuàng)建

    2024年02月03日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包