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

springMvc和mybatis-plus中枚舉值和字段的映射

 更新時(shí)間:2023年05月28日 12:02:05   作者:forest  
這篇文章主要為大家介紹了springMvc和mybatis-plus中枚舉值和字段的映射示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

DB和entity之間的映射

最近看到有人使用這幾個(gè)注解,就稍微了解了一下各自的用法,發(fā)現(xiàn)枚舉在前后臺(tái)傳值,DB和entity之間的映射很方便

  • 1.使用@JsonCreator,可以將前臺(tái)的屬性值直接轉(zhuǎn)換為枚舉類型
  • 2.@EnumValue 將枚舉中的指定的值直接存儲(chǔ)到數(shù)據(jù)庫(kù),不需要再手動(dòng)轉(zhuǎn)換
  • 3.@JsonValue 后臺(tái)返回前臺(tái)數(shù)據(jù)時(shí)也不需要轉(zhuǎn)換,可以直接返回指定的值

案例:

User實(shí)體

@TableName("user")
@Data
public class User {
  private Integer id;
  private String name;
  private Integer age;
  private SexEnum sex;
}

枚舉類

public enum SexEnum {
  MALE(1,"男"),
  FEMALE(2,"女")
  ;
  @EnumValue //數(shù)據(jù)庫(kù)中直接存入枚舉屬性val的值
  private Integer val;
  @JsonValue //序列化枚舉對(duì)象時(shí),返回其屬性desc的值
  private String desc;
  SexEnum(Integer val, String desc) {
      this.val = val;
      this.desc = desc;
  }
  /**
   * 1.通過(guò)屬性desc獲取對(duì)應(yīng)的枚舉
   * 2.JsonCreator加在構(gòu)造方法或者靜態(tài)方法上,為對(duì)象的反序列化指定構(gòu)造邏輯
   * 3.前端向后臺(tái)傳輸json參數(shù),json反序列化成對(duì)象時(shí)會(huì)自動(dòng)調(diào)用這個(gè)方法
   */
  @JsonCreator
  public static SexEnum fromDesc(String desc) {
      System.out.println("進(jìn)入枚舉自定義構(gòu)造方法");
      for(SexEnum sexEnum : SexEnum.values()) {
          if(sexEnum.getDesc().equals(desc)) {
              return sexEnum;
          }
      }
      return null;
  }
  public Integer getVal() {
      return val;
  }
  public void setVal(Integer val) {
      this.val = val;
  }
  public String getDesc() {
      return desc;
  }
  public void setDesc(String desc) {
      this.desc = desc;
  }
}

請(qǐng)求類

@RequestMapping("/getUser")
  @ResponseBody
  public User getUser(User u) {
      //返回?cái)?shù)據(jù)給前臺(tái)時(shí),序列化對(duì)象時(shí),其中的枚舉類型會(huì)根據(jù)@JsonValue指定的字段進(jìn)行處理
      User user = userService.getUser();
      return user;
  }
  @RequestMapping("/save_user")
  @ResponseBody
  public String saveUser(@RequestBody User u) {
     //前臺(tái)傳入Sex字符串,直接轉(zhuǎn)換為枚舉對(duì)象 
     // json反序列化時(shí)自動(dòng)調(diào)用了SexEnum中的fromDesc()獲取枚舉對(duì)象,然后賦值給u中的sex
     userService.saveUser(u);
     return "success";
  }

效果圖

postman中的入?yún)?一定要使用json格式,使用表單無(wú)效果

看到控制臺(tái)打印了一句話,說(shuō)明反序列化枚舉對(duì)象時(shí),使用了我們自定義的方法

可以看到sex屬性中的值前端傳入的值‘男’,但是后臺(tái)接收到為SexEnum的"MALE"

數(shù)據(jù)庫(kù)中的數(shù)據(jù),按照@EnumValue指定的屬性存入數(shù)據(jù)

從數(shù)據(jù)庫(kù)中查詢的數(shù)據(jù),枚舉按照我們使用@jsonValue的字段返回值

以上就是springMvc和mybatis-plus中枚舉值和字段的映射的詳細(xì)內(nèi)容,更多關(guān)于springMvc mybatis-plus的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java.util.Date與java.sql.Date的區(qū)別

    java.util.Date與java.sql.Date的區(qū)別

    這篇文章主要介紹了java.util.Date與java.sql.Date的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • TKMybatis的介紹和使用詳解

    TKMybatis的介紹和使用詳解

    TKMybatis 是基于 Mybatis 框架開(kāi)發(fā)的一個(gè)工具,本文主要介紹了TKMybatis的介紹和使用詳解,內(nèi)部實(shí)現(xiàn)了對(duì)單表的基本數(shù)據(jù)操作,只需要簡(jiǎn)單繼承 TKMybatis 提供的接口,就能夠?qū)崿F(xiàn)無(wú)需編寫(xiě)任何 sql 即能完成單表操作,感興趣的可以了解一下
    2021-12-12
  • Springboot快速入門(mén)教程

    Springboot快速入門(mén)教程

    今天給大家?guī)?lái)的是關(guān)于Springboot基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Springboot的基礎(chǔ)知識(shí)及用法展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java中的equsals和==

    Java中的equsals和==

    這篇文章主要介紹了Java中的equsals和==的相關(guān)內(nèi)容,感興趣的朋朋友可以參考下文
    2021-08-08
  • 詳解 Java 中 equals 和 == 的區(qū)別

    詳解 Java 中 equals 和 == 的區(qū)別

    這篇文章主要介紹了詳解 Java 中 equals 和 == 的區(qū)別的相關(guān)資料,equals 和 == 都是用來(lái)檢測(cè)兩個(gè)字符串是否相等,返回值也都是布爾型,但是兩者在內(nèi)部比較的處理中卻不盡相同需要的朋友可以參考下
    2017-03-03
  • java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解

    java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解

    這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • screw?Maven插件方式運(yùn)行時(shí)在編譯打包時(shí)跳過(guò)執(zhí)行的問(wèn)題解決方法

    screw?Maven插件方式運(yùn)行時(shí)在編譯打包時(shí)跳過(guò)執(zhí)行的問(wèn)題解決方法

    這篇文章主要介紹了screw?Maven插件方式運(yùn)行時(shí)在編譯打包時(shí)跳過(guò)執(zhí)行的問(wèn)題解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • SpringBoot 如何編寫(xiě)配置文件

    SpringBoot 如何編寫(xiě)配置文件

    這篇文章主要介紹了SpringBoot 編寫(xiě)配置文件的兩種方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • springSecurity之如何添加自定義過(guò)濾器

    springSecurity之如何添加自定義過(guò)濾器

    這篇文章主要介紹了springSecurity之如何添加自定義過(guò)濾器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Springboot整合Swagger3全注解配置(springdoc-openapi-ui)

    Springboot整合Swagger3全注解配置(springdoc-openapi-ui)

    本文主要介紹了Springboot整合Swagger3全注解配置(springdoc-openapi-ui),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論