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

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

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

1 @TableId

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

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

上面說了當(dāng)實體類和數(shù)據(jù)庫的值都是uid時,需要在實體類上加上@TableId注解,那么當(dāng)實體類的字段為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默認(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本地高性能緩存的幾種常見實現(xiàn)方式

    Java本地高性能緩存的幾種常見實現(xiàn)方式

    在Java中緩存是一種常用的性能優(yōu)化技術(shù),用于在應(yīng)用程序中加速訪問和查詢數(shù)據(jù)的速度,下面這篇文章主要給大家介紹了關(guān)于Java本地高性能緩存的幾種常見實現(xiàn)方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • dubbo將異常轉(zhuǎn)換成RuntimeException的原因分析?ExceptionFilter

    dubbo將異常轉(zhuǎn)換成RuntimeException的原因分析?ExceptionFilter

    這篇文章主要介紹了dubbo將異常轉(zhuǎn)換成RuntimeException的原因分析?ExceptionFilter問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring-webflux?響應(yīng)式編程的實例詳解

    Spring-webflux?響應(yīng)式編程的實例詳解

    Spring 提供了兩個并行堆棧,一種是基于帶有 Spring MVC 和 Spring Data 結(jié)構(gòu)的 Servlet API,另一個是完全反應(yīng)式堆棧,它利用了 Spring WebFlux 和 Spring Data 的反應(yīng)式存儲庫,這篇文章主要介紹了Spring-webflux?響應(yīng)式編程,需要的朋友可以參考下
    2022-09-09
  • JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤實例代碼,需要的朋友可以參考一下
    2013-02-02
  • SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn)

    SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn)

    沖突動態(tài)監(jiān)測算法是一種網(wǎng)絡(luò)通信中的沖突檢測方法,適用于無線網(wǎng)絡(luò)或其他共享傳輸介質(zhì)的環(huán)境,本文主要介紹了SpringBoot項目加入沖突動態(tài)監(jiān)測算法的實現(xiàn),感興趣的可以了解一下
    2023-09-09
  • Java中的接口回調(diào)實例

    Java中的接口回調(diào)實例

    今天小編就為大家分享一篇關(guān)于Java中的接口回調(diào)實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • java數(shù)字轉(zhuǎn)漢字工具類詳解

    java數(shù)字轉(zhuǎn)漢字工具類詳解

    這篇文章主要為大家詳細(xì)介紹了java數(shù)字轉(zhuǎn)漢字工具類的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式

    Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式

    這篇文章主要介紹了Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解在Spring中如何自動創(chuàng)建代理

    詳解在Spring中如何自動創(chuàng)建代理

    這篇文章主要介紹了詳解在Spring中如何自動創(chuàng)建代理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • RxJava2.x+ReTrofit2.x多線程下載文件的示例代碼

    RxJava2.x+ReTrofit2.x多線程下載文件的示例代碼

    本篇文章主要介紹了RxJava2.x+ReTrofit2.x多線程下載文件的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-09-09

最新評論