欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

說明

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

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

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

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

注解

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

@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自增,否則無效(會報錯)。

報錯信息查看文章最后的《報錯示例》

注解

@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報錯

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

Column ‘id’ cannot be null

補充:報錯示例(IdType.AUTO)

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

實體類

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);
    }

報錯信息

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

相關(guān)文章

  • java中生成任意之間數(shù)的隨機數(shù)詳解

    java中生成任意之間數(shù)的隨機數(shù)詳解

    這篇文章主要介紹了java中生成任意之間數(shù)的隨機數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Java String類的性質(zhì)與比較

    Java String類的性質(zhì)與比較

    字符串廣泛應(yīng)用 在 Java 編程中,在 Java 中字符串屬于對象,Java 提供了 String 類來創(chuàng)建和操作字符串,本文將為你帶來詳細(xì)介紹,感興趣的朋友繼續(xù)往下看吧
    2021-10-10
  • Java面試題之MD5加密的安全性詳解

    Java面試題之MD5加密的安全性詳解

    MD5 是 Message Digest Algorithm 的縮寫,譯為信息摘要算法,它是 Java 語言中使用很廣泛的一種加密算法。本文將通過示例討論下MD5的安全性,感興趣的可以了解一下
    2022-10-10
  • Java創(chuàng)建和填充PDF表單域方法

    Java創(chuàng)建和填充PDF表單域方法

    在本篇文章中小編給大家分享了關(guān)于Java創(chuàng)建和填充PDF表單域方法和步驟,有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • 淺談java中Math.random()與java.util.random()的區(qū)別

    淺談java中Math.random()與java.util.random()的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中Math.random()與java.util.random()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • JPA中EntityListeners注解的使用詳解

    JPA中EntityListeners注解的使用詳解

    這篇文章主要介紹了JPA中EntityListeners注解的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • jstack配合top命令分析CPU飆高、程序死鎖問題

    jstack配合top命令分析CPU飆高、程序死鎖問題

    記得前段時間,同事說他們測試環(huán)境的服務(wù)器cpu使用率一直處于100%,本地又沒有什么接口調(diào)用,為什么會這樣?cpu使用率居高不下,自然是有某些線程一直占用著cpu資源,那又如何查看占用cpu較高的線程
    2021-09-09
  • Mac修改默認(rèn)jdk版本的方法總結(jié)

    Mac修改默認(rèn)jdk版本的方法總結(jié)

    這篇文章主要介紹了Mac修改默認(rèn)jdk版本的相關(guān)資料,文中詳細(xì)介紹了如何將Java版本從Java?17降低到Java?8,并通過修改.bash_profile文件來永久生效,需要的朋友可以參考下
    2024-12-12
  • IDEA 2020代碼提示忽略大小寫的問題

    IDEA 2020代碼提示忽略大小寫的問題

    這篇文章主要介紹了IDEA 2020代碼提示忽略大小寫的問題,本文通過圖文并茂的形式給大家分享解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 解析JavaSe的抽象類和接口

    解析JavaSe的抽象類和接口

    這篇文章主要為大家詳細(xì)介紹了JavaSe的抽象類和接口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論