最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatisPlus 主鍵策略的實(shí)現(xiàn)(4種)

 更新時(shí)間:2023年10月07日 09:22:30   作者:宋冠巡  
MyBatis Plus 集成了多種主鍵策略,幫助用戶快速生成主鍵,本文主要介紹了MyBatisPlus主鍵策略的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

說明

MyBatis Plus 集成了多種主鍵策略,幫助用戶快速生成主鍵。

  • 雪花算法ID(默認(rèn)策略)(推薦)
  • UUID
  • 自增ID
  • 用戶輸入ID(必須用戶每次插入數(shù)據(jù)時(shí),手動傳入ID)

雪花算法ID:IdType.ASSIGN_ID(推薦)

默認(rèn)情況,全局使用的,就是雪花算法ID。也就是說,id字段在沒有指定任何主鍵策略時(shí),插入數(shù)據(jù)就是使用的雪花算法生成的ID。

注解

如果全局使用雪花算法ID,這個(gè)注解可以不加。

@TableId(type = IdType.ASSIGN_ID)

代碼

package com.example.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
    @Test
    public void insert() {
        User user = new User();
        user.setName("趙一");
        user.setAge(26);
        user.setEmail("zhaoyi@example.com");
        mapper.insert(user);
    }

效果

UUID:IdType.ASSIGN_UUID

注解

@TableId(type = IdType.ASSIGN_UUID)

代碼

package com.example.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
    @TableId(type = IdType.ASSIGN_UUID)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
    @Test
    public void insert() {
        User user = new User();
        user.setName("趙一");
        user.setAge(26);
        user.setEmail("zhaoyi@example.com");
        mapper.insert(user);
    }

效果

自增ID:IdType.AUTO

該類型請確保數(shù)據(jù)庫設(shè)置了 ID自增,否則無效(會報(bào)錯(cuò))。

報(bào)錯(cuò)信息查看文章最后的《報(bào)錯(cuò)示例》

注解

@TableId(type = IdType.AUTO)

代碼與測試

package com.example.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
    @Test
    public void insert() {
        User user = new User();
        user.setName("趙一");
        user.setAge(26);
        user.setEmail("zhaoyi@example.com");
        mapper.insert(user);
    }

效果

用戶輸入ID:IdType.INPUT

注解

@TableId(type = IdType.INPUT)

代碼

package com.example.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
    @TableId(type = IdType.INPUT)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
    @Test
    public void insert() {
        User user = new User();
        user.setId(9L);
        user.setName("趙一");
        user.setAge(26);
        user.setEmail("zhaoyi@example.com");
        mapper.insert(user);
    }

效果

指定id之后,插入數(shù)據(jù)成功

未指定ID報(bào)錯(cuò)

如果不指定id,也就是 setId() 方法沒調(diào)用,會報(bào)錯(cuò):

Column ‘id’ cannot be null

補(bǔ)充:報(bào)錯(cuò)示例(IdType.AUTO)

當(dāng) MySQL 數(shù)據(jù)庫中的表,ID并沒有自增,但是代碼中的id是自增,此時(shí)新增一條數(shù)據(jù),會報(bào)錯(cuò)。

實(shí)體類

package com.example.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

插入數(shù)據(jù)方法

    @Test
    public void insert() {
        User user = new User();
        user.setName("趙一");
        user.setAge(26);
        user.setEmail("zhaoyi@example.com");
        mapper.insert(user);
    }

報(bào)錯(cuò)信息

到此這篇關(guān)于MyBatisPlus 主鍵策略的實(shí)現(xiàn)(4種)的文章就介紹到這了,更多相關(guān)MyBatisPlus 主鍵策略內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 輕松學(xué)會使用JavaMail?API發(fā)送郵件

    輕松學(xué)會使用JavaMail?API發(fā)送郵件

    想要輕松學(xué)會使用JavaMail?API發(fā)送郵件嗎?本指南將帶你快速掌握這一技能,讓你能夠輕松發(fā)送電子郵件,無論是個(gè)人還是工作需求,跟著我們的步驟,很快你就可以在Java應(yīng)用程序中自如地處理郵件通信了!
    2023-12-12
  • 部署springboot項(xiàng)目讀取外部配置文件實(shí)現(xiàn)過程

    部署springboot項(xiàng)目讀取外部配置文件實(shí)現(xiàn)過程

    本文介紹了Spring Boot項(xiàng)目如何讀取外部配置文件,以實(shí)現(xiàn)應(yīng)用與配置分離,主要通過將配置文件放在jar包的同級目錄中,或通過啟動命令指定配置文件路徑等方式實(shí)現(xiàn),這種方法可以避免每次部署時(shí)修改配置文件的麻煩
    2026-04-04
  • 基于數(shù)據(jù)庫的用戶認(rèn)證實(shí)現(xiàn)SpringBoot3整合SpringSecurity6的過程

    基于數(shù)據(jù)庫的用戶認(rèn)證實(shí)現(xiàn)SpringBoot3整合SpringSecurity6的過程

    這篇文章主要介紹了基于數(shù)據(jù)庫的用戶認(rèn)證實(shí)現(xiàn)SpringBoot3整合SpringSecurity6的過程,本文通過實(shí)例圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-05-05
  • Mybatis 自定義類型處理器示例詳解

    Mybatis 自定義類型處理器示例詳解

    在某些情況下我們需要對類型做處理,例如數(shù)據(jù)存儲的是Long,程序里是BigDecimal,那么我們出庫入庫都需要做處理,此時(shí)就可以使用類型處理器,本文通過示例給大家介紹Mybatis 自定義類型處理器的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • springboot讀取resource配置文件生成容器對象的示例代碼

    springboot讀取resource配置文件生成容器對象的示例代碼

    這篇文章主要介紹了springboot讀取resource配置文件生成容器對象的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • java為什么需要虛擬機(jī)jvm原理詳解

    java為什么需要虛擬機(jī)jvm原理詳解

    這篇文章主要為大家介紹了java為什么需要虛擬機(jī)jvm的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • jdk7 中HashMap的知識點(diǎn)總結(jié)

    jdk7 中HashMap的知識點(diǎn)總結(jié)

    HashMap的原理是老生常談了,不作仔細(xì)解說。一句話概括為HashMap是一個(gè)散列表,它存儲的內(nèi)容是鍵值對(key-value)映射。這篇文章主要總結(jié)了關(guān)于jdk7 中HashMap的知識點(diǎn),需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • transactionAttributes各屬性意義及配置

    transactionAttributes各屬性意義及配置

    這篇文章主要介紹了transactionAttributes各屬性意義及配置,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • 一文詳解Java中的動態(tài)填充Html模版并轉(zhuǎn)PDF

    一文詳解Java中的動態(tài)填充Html模版并轉(zhuǎn)PDF

    在后端技術(shù)中,模板引擎和PDF生成工具是兩個(gè)非常重要的領(lǐng)域,Thymeleaf和wkhtmltopdf是這兩個(gè)領(lǐng)域的杰出代表,下面就來詳細(xì)介紹一下Thymeleaf和wkhtmltopdf的技術(shù)特點(diǎn)吧
    2023-12-12
  • Jenkins build記錄清理,釋放磁盤空間方式

    Jenkins build記錄清理,釋放磁盤空間方式

    Jenkins構(gòu)建記錄會占用大量磁盤空間,需要定期清理,可以通過JenkinsJob配置中的“丟棄舊的構(gòu)建”(DiscardOldBuilds)來清理
    2025-11-11

最新評論

清丰县| 册亨县| 鱼台县| 孟村| 沁阳市| 华池县| 无为县| 炎陵县| 盐津县| 楚雄市| 巴塘县| 高雄县| 合阳县| 扎囊县| 毕节市| 渝北区| 陇川县| 丹寨县| 永兴县| 东源县| 瑞安市| 甘南县| 保德县| 留坝县| 南宁市| 金坛市| 新竹市| 万宁市| 鹤庆县| 宜春市| 邮箱| 阳西县| 望奎县| 马关县| 石狮市| 谢通门县| 邳州市| 类乌齐县| 黄浦区| 岑巩县| 和龙市|