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

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

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

1 @TableId

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

 可以發(fā)現(xiàn)我們沒有設(shè)置id,但是插入的時(shí)候id卻是能夠自己插入進(jìn)去。但是要是將實(shí)體類字段的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;
 
}

 最后報(bào)錯(cuò)信息如下:

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

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

可以在該字段上加上@TableId

2  @TableId的value屬性

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

@TableId
private Long id;

報(bào)錯(cuò)信息如下:

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è)置一個(gè)value屬性時(shí),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,否則無效

因?yàn)樵谥暗牟迦胫校l(fā)現(xiàn)id默認(rèn)的就是雪花算法

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

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

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

到此這篇關(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)存,磁盤的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 深入理解java代碼實(shí)現(xiàn)分治算法

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

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

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

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

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

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

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

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

    Feign之Multipartfile文件傳輸填坑

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

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

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

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

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

    Java中ThreadLocal的用法及原理詳解

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

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

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

最新評論

岑溪市| 海安县| 连云港市| 大荔县| 阳春市| 郴州市| 图片| 南雄市| 正镶白旗| 吴忠市| 威宁| 临江市| 北海市| 独山县| 陆河县| 通州区| 福鼎市| 鄱阳县| 儋州市| 华容县| 永丰县| 青冈县| 阿拉善盟| 龙胜| 武乡县| 旬邑县| 白水县| 瑞丽市| 临桂县| 天长市| 滦平县| 上林县| 土默特左旗| 白玉县| 涟源市| 新巴尔虎左旗| 九江县| 运城市| 南雄市| 宝坻区| 孟津县|