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

mybatis-plus常用注解@TableId和@TableField的用法

 更新時間:2023年04月12日 15:44:24   作者:想養(yǎng)一只薩摩耶~  
本文主要介紹了mybatis-plus常用注解@TableId和@TableField的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1 @TableId

當我們用mybatis-plus對數(shù)據(jù)庫進行操作時,比如說如下代碼:

 可以發(fā)現(xiàn)我們沒有設(shè)置id,但是插入的時候id卻是能夠自己插入進去。但是要是將實體類字段的id改為uid呢?數(shù)據(jù)庫的字段也改為id,再次執(zhí)行代碼

@Data
public class User {
 
 
    private Long uid;
 
    private String name;
 
    private Integer age;
 
    private String email;
 
    private SexEnum sex;
 
    @TableLogic
    private Integer isDeleted;
 
}

 最后報錯信息如下:

org.springframework.dao.DataIntegrityViolationException: com.atguigu.mybatisplus.mapper.UserMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: Field 'uid' doesn't have a default value
; Field 'uid' doesn't have a default value; nested exception is java.sql.BatchUpdateException: Field 'uid' doesn't have a default value

那如何在不改變字段的情況下,解決這個問題呢?

可以在該字段上加上@TableId

2  @TableId的value屬性

上面說了當實體類和數(shù)據(jù)庫的值都是uid時,需要在實體類上加上@TableId注解,那么當實體類的字段為id,數(shù)據(jù)庫的字段為uid呢,這樣還可以嗎?我們一試便知。

@TableId
private Long id;

報錯信息如下:

org.springframework.jdbc.BadSqlGrammarException: com.atguigu.mybatisplus.mapper.UserMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: Unknown column 'id' in 'field list'
; bad SQL grammar []; nested exception is java.sql.BatchUpdateException: Unknown column 'id' in 'field list'

顯示這是不可以的,但是如果采用了@TableId的value屬性呢,如下:

//注意: 只設(shè)置一個value屬性時,value可以不寫,作用:用于設(shè)置指定主鍵
@TableId("uid")
private Long id;

這樣一樣可以插入成功

3  @TableId的type屬性

常用的主鍵策略:

描述
IdType.ASSIGN_ID基于雪花算法的策略生成數(shù)據(jù)id,與數(shù)據(jù)庫id是否設(shè)置自增無關(guān)
IdType.AUTO使用數(shù)據(jù)庫的自增策略,注意:該類型需確保數(shù)據(jù)庫設(shè)置了自增id,否則無效

因為在之前的插入中,發(fā)現(xiàn)id默認的就是雪花算法

如果想要使用了數(shù)據(jù)庫的自增策略,需要 設(shè)置IdType.AUTO和數(shù)據(jù)庫設(shè)置自增id。

除此之外,也可以通過全局配置來設(shè)置主鍵生成策略。

注意:@TableId注解是專用于主鍵的注解、@TableField用于其他屬性所對應字段不一致的注解。

到此這篇關(guān)于mybatis-plus常用注解@TableId和@TableField的用法的文章就介紹到這了,更多相關(guān)mybatis-plus @TableId @TableField內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java將數(shù)據(jù)寫入內(nèi)存,磁盤的方法

    java將數(shù)據(jù)寫入內(nèi)存,磁盤的方法

    下面小編就為大家分享一篇java將數(shù)據(jù)寫入內(nèi)存,磁盤的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 深入理解java代碼實現(xiàn)分治算法

    深入理解java代碼實現(xiàn)分治算法

    分治算法是一種遞歸算法,它將問題劃分為幾個獨立的子問題,然后遞歸地解決這些子問題,最后將子問題的解合并起來得到原問題的解,本文詳細的介紹java分治算法,感興趣的可以了解一下
    2023-09-09
  • SpringBoot項目中如何實現(xiàn)MySQL讀寫分離詳解

    SpringBoot項目中如何實現(xiàn)MySQL讀寫分離詳解

    在高并發(fā)下需要對應用進行讀寫分離,配置多數(shù)據(jù)源,即寫操作走主庫,讀操作則走從庫,主從數(shù)據(jù)庫負責各自的讀和寫,緩解了鎖的爭用,提高了讀取性能,這篇文章主要給大家介紹了關(guān)于SpringBoot項目中如何實現(xiàn)MySQL讀寫分離的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • SpringBoot基于Redis實現(xiàn)短信登錄的操作

    SpringBoot基于Redis實現(xiàn)短信登錄的操作

    驗證碼登錄是非常常見的一種登錄方式,能夠簡化用戶登錄的過程,本文主要介紹了SpringBoot基于Redis實現(xiàn)短信登錄的操作,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • JAVA中的字符串常量池使用操作代碼

    JAVA中的字符串常量池使用操作代碼

    Java中的字符串常量池是Java堆中的一塊特殊存儲區(qū)域,用于存儲字符串。它的實現(xiàn)是為了提高字符串操作的性能并節(jié)省內(nèi)存,這篇文章主要介紹了JAVA中的字符串常量池,需要的朋友可以參考下
    2022-12-12
  • Feign之Multipartfile文件傳輸填坑

    Feign之Multipartfile文件傳輸填坑

    這篇文章主要介紹了Feign之Multipartfile文件傳輸埋坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 使用Java編寫一個圖片word互轉(zhuǎn)工具

    使用Java編寫一個圖片word互轉(zhuǎn)工具

    這篇文章主要介紹了使用Java編寫一個PDF?Word文件轉(zhuǎn)換工具的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • java高并發(fā)的用戶線程和守護線程詳解

    java高并發(fā)的用戶線程和守護線程詳解

    本篇文章主要介紹了淺談java中守護線程與用戶線程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • Java中ThreadLocal的用法及原理詳解

    Java中ThreadLocal的用法及原理詳解

    這篇文章主要介紹了Java中ThreadLocal的用法及原理詳解,在并發(fā)編程中,如果一個類變量被多個線程操作,會造成線程安全問題,使用ThreadLocal可以讓每個線程擁有線程內(nèi)部的變量,防止多個線程操作一個類變量造成的線程安全問題,需要的朋友可以參考下
    2023-09-09
  • 全面詳解java代碼重構(gòu)與設(shè)計模式

    全面詳解java代碼重構(gòu)與設(shè)計模式

    這篇文章主要為大家介紹了全面詳解java代碼重構(gòu)與設(shè)計模式的全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論

澜沧| 毕节市| 通渭县| 勐海县| 察隅县| 临夏县| 睢宁县| 定州市| 山西省| 清水河县| 永泰县| 承德市| 青龙| 屏边| 安乡县| 永和县| 资中县| 庆云县| 衡阳市| 郸城县| 临城县| 乌拉特后旗| 那曲县| 措美县| 灵石县| 甘洛县| 聊城市| 三都| 永泰县| 土默特右旗| 外汇| 西城区| 信宜市| 岚皋县| 洪雅县| 平罗县| 南部县| 亳州市| 宁阳县| 兰坪| 营口市|