亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

說(shuō)明

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

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

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

默認(rèn)情況,全局使用的,就是雪花算法ID。也就是說(shuō),id字段在沒(méi)有指定任何主鍵策略時(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

該類(lèi)型請(qǐng)確保數(shù)據(jù)庫(kù)設(shè)置了 ID自增,否則無(wú)效(會(huì)報(bào)錯(cuò))。

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

注解

@TableId(type = IdType.AUTO)

代碼與測(cè)試

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

效果

用戶(hù)輸入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() 方法沒(méi)調(diào)用,會(huì)報(bào)錯(cuò):

Column ‘id’ cannot be null

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

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

實(shí)體類(lèi)

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 主鍵策略?xún)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

    MD5 是 Message Digest Algorithm 的縮寫(xiě),譯為信息摘要算法,它是 Java 語(yǔ)言中使用很廣泛的一種加密算法。本文將通過(guò)示例討論下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ī)?lái)一篇淺談java中Math.random()與java.util.random()的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • JPA中EntityListeners注解的使用詳解

    JPA中EntityListeners注解的使用詳解

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

    jstack配合top命令分析CPU飆高、程序死鎖問(wèn)題

    記得前段時(shí)間,同事說(shuō)他們測(cè)試環(huán)境的服務(wù)器cpu使用率一直處于100%,本地又沒(méi)有什么接口調(diào)用,為什么會(huì)這樣?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,并通過(guò)修改.bash_profile文件來(lái)永久生效,需要的朋友可以參考下
    2024-12-12
  • IDEA 2020代碼提示忽略大小寫(xiě)的問(wèn)題

    IDEA 2020代碼提示忽略大小寫(xiě)的問(wèn)題

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

    解析JavaSe的抽象類(lèi)和接口

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

最新評(píng)論