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

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

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

DB和entity之間的映射

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

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

案例:

User實體

@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ù)庫中直接存入枚舉屬性val的值
  private Integer val;
  @JsonValue //序列化枚舉對象時,返回其屬性desc的值
  private String desc;
  SexEnum(Integer val, String desc) {
      this.val = val;
      this.desc = desc;
  }
  /**
   * 1.通過屬性desc獲取對應(yīng)的枚舉
   * 2.JsonCreator加在構(gòu)造方法或者靜態(tài)方法上,為對象的反序列化指定構(gòu)造邏輯
   * 3.前端向后臺傳輸json參數(shù),json反序列化成對象時會自動調(diào)用這個方法
   */
  @JsonCreator
  public static SexEnum fromDesc(String desc) {
      System.out.println("進入枚舉自定義構(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;
  }
}

請求類

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

效果圖

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

看到控制臺打印了一句話,說明反序列化枚舉對象時,使用了我們自定義的方法

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

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

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

以上就是springMvc和mybatis-plus中枚舉值和字段的映射的詳細內(nèi)容,更多關(guān)于springMvc mybatis-plus的資料請關(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 框架開發(fā)的一個工具,本文主要介紹了TKMybatis的介紹和使用詳解,內(nèi)部實現(xiàn)了對單表的基本數(shù)據(jù)操作,只需要簡單繼承 TKMybatis 提供的接口,就能夠?qū)崿F(xiàn)無需編寫任何 sql 即能完成單表操作,感興趣的可以了解一下
    2021-12-12
  • Springboot快速入門教程

    Springboot快速入門教程

    今天給大家?guī)淼氖顷P(guān)于Springboot基礎(chǔ)的相關(guān)知識,文章圍繞著Springboot的基礎(chǔ)知識及用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    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 和 == 都是用來檢測兩個字符串是否相等,返回值也都是布爾型,但是兩者在內(nèi)部比較的處理中卻不盡相同需要的朋友可以參考下
    2017-03-03
  • java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹及其編碼示例詳解

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

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

    screw?Maven插件方式運行時在編譯打包時跳過執(zhí)行的問題解決方法

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

    SpringBoot 如何編寫配置文件

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

    springSecurity之如何添加自定義過濾器

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

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

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

最新評論