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

Mybatis-plus中的@EnumValue注解使用詳解

 更新時間:2024年02月02日 09:12:00   作者:真正的大師學徒的心  
這篇文章主要介紹了Mybatis-plus中的@EnumValue注解使用詳解,在PO類中,如果我們直接使用枚舉類型去映射數(shù)據(jù)庫的對應字段保存時,往往就會因為類型不匹配導致映射失敗,Mybatis-plus提供了一種解決辦法,就是使用@EnumValue注解,需要的朋友可以參考下

前言

在實際開發(fā)中,對于一些狀態(tài)類的字段,我們通常使用的是枚舉,而保存到數(shù)據(jù)庫時,我們是用的枚舉的某一個屬性進行保存的,這里就會有一個問題,在PO類中,如果我們直接使用枚舉類型去映射數(shù)據(jù)庫的對應字段保存時,往往就會因為類型不匹配導致映射失敗,如果要解決這個問題,辦法有很多種,Mybatis-plus提供了一種解決辦法,就是使用@EnumValue注解,這里我們就使用這種方式。

Maven引入的依賴

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

Demo

PO類

@Data
@TableName(value = "urge_reduce_rule")
public class ReduceRule {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField(value = "charge_category")
    private ChargeCategoryEnum chargeCategoryEnum;

    @TableField(value = "name")
    private String name;
}

枚舉類(@EnumValue注解就用在這里)

@Getter
public enum ChargeCategoryEnum {
    CHARGE("CHARGE",1,"基本費"),
    PENALTY("PENALTY",2,"違約金");
    private String code;
    @EnumValue  //在需要保存到數(shù)據(jù)庫的值上面加上注解
    private Integer value;
    private String text;
    public String getCode() {
        return code;
    }
    ChargeCategoryEnum(String code, Integer value, String text) {
        this.code = code;
        this.value = value;
        this.text = text;
    }
}

mapper類

@Mapper
public interface ReduceRuleMapper extends BaseMapper<ReduceRule> {
}

配置文件

#配置枚舉 支持通配符 * 或者 ; 分割。指定枚舉類所在的包
mybatis-plus:
  type-enums-package: com.demo.mybatisplus.enum 
  configuration:
    default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
  #handler配置可以省略不寫,默認配置就是上面這個Handler

測試代碼

@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
    @Resource
    private ReduceRuleMapper reduceRuleMapper;
    @Test
    void test1(){
        ReduceRule reduceRule = new ReduceRule();
        reduceRule.setName("名字");
        reduceRule.setChargeCategoryEnum(ChargeCategoryEnum.PENALTY);
        reduceRuleMapper.insert(reduceRule);
    }
    @Test
    void test2(){
        ReduceRule reduceRule = reduceRuleMapper.selectById(32L);
        System.out.println(reduceRule);
    }
}

拓展

如果返回給前端不希望直接將枚舉返回的話,需要在枚舉類上加上 @JsonValue 注解

@Getter
public enum ChargeCategoryEnum {
    CHARGE("CHARGE",1,"基本費"),
    PENALTY("PENALTY",2,"違約金");
    private String code;
    @EnumValue  //在需要保存到數(shù)據(jù)庫的值上面加上注解
    private Integer value;
    @JsonValue    //需要在前端展示哪個值就在哪個屬性上加上該注解
    private String text;
    public String getCode() {
        return code;
    }
    ChargeCategoryEnum(String code, Integer value, String text) {
        this.code = code;
        this.value = value;
        this.text = text;
    }
}

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

相關(guān)文章

  • 細致解讀希爾排序算法與相關(guān)的Java代碼實現(xiàn)

    細致解讀希爾排序算法與相關(guān)的Java代碼實現(xiàn)

    這篇文章主要介紹了希爾排序算法與相關(guān)的Java代碼實現(xiàn),希爾排序的時間復雜度根據(jù)步長序列的不同而不同,需要的朋友可以參考下
    2016-05-05
  • SpringBoot動態(tài)定時任務實現(xiàn)與應用詳解

    SpringBoot動態(tài)定時任務實現(xiàn)與應用詳解

    定時任務在許多應用場景中是必不可少的,特別是在自動化任務執(zhí)行、定期數(shù)據(jù)處理等方面,定時任務能極大地提高系統(tǒng)的效率,然而,隨著業(yè)務需求的變化,定時任務的執(zhí)行頻率或時間點可能需要動態(tài)調(diào)整,所以本文給大家介紹了SpringBoot動態(tài)定時任務實現(xiàn)與應用
    2024-08-08
  • 心動嗎?正大光明的免費使用IntelliJ IDEA商業(yè)版

    心動嗎?正大光明的免費使用IntelliJ IDEA商業(yè)版

    這篇文章主要介紹了正大光明的免費使用IntelliJ IDEA商業(yè)版,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-02-02
  • SpringBoot項目啟動后及關(guān)閉前執(zhí)行指定代碼實現(xiàn)方式

    SpringBoot項目啟動后及關(guān)閉前執(zhí)行指定代碼實現(xiàn)方式

    文章介紹了在Spring Boot項目中,如何通過注解@Component、@PostConstruct和@PreDestroy以及實現(xiàn)ApplicationRunner和CommandLineRunner接口來訂閱和取消訂閱消息,每種方法都有其特點和適用場景
    2025-10-10
  • Java Fluent Mybatis 聚合查詢與apply方法詳解流程篇

    Java Fluent Mybatis 聚合查詢與apply方法詳解流程篇

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis關(guān)于聚合查詢、apply方法詳解
    2021-10-10
  • SpringBoot過濾器與攔截器使用方法深入分析

    SpringBoot過濾器與攔截器使用方法深入分析

    大家應該都曉得實現(xiàn)過濾器需要實現(xiàn) javax.servlet.Filter 接口,而攔截器會在處理指定請求之前和之后進行相關(guān)操作,配置攔截器需要兩步,本文通過實例代碼給大家介紹SpringBoot 過濾器和攔截器的相關(guān)知識,感興趣的朋友一起看看吧
    2022-12-12
  • 一文詳解Java Function的高級使用技巧

    一文詳解Java Function的高級使用技巧

    本文總結(jié)了10種企業(yè)級Java Function的編程技巧,包括柯里化、EnumMap+Supplier、ImmutableMap+BiConsumer等,通過函數(shù)式編程解決實際問題,提高代碼復用性和可維護性,需要的朋友可以參考下
    2026-03-03
  • SpringBoot 單元測試JUnit的使用詳解

    SpringBoot 單元測試JUnit的使用詳解

    這篇文章主要介紹了SpringBoot 單元測試JUnit的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 詳解SpringBoot中異步請求和異步調(diào)用(看完這一篇就夠了)

    詳解SpringBoot中異步請求和異步調(diào)用(看完這一篇就夠了)

    這篇文章主要介紹了SpringBoot中異步請求和異步調(diào)用問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • SpringBoot 多環(huán)境開發(fā)實戰(zhàn)(從配置、管理與控制)

    SpringBoot 多環(huán)境開發(fā)實戰(zhàn)(從配置、管理與控制)

    本文詳解SpringBoot多環(huán)境配置,涵蓋單文件YAML、多文件模式、Maven Profile分組及激活策略,通過優(yōu)先級控制靈活切換環(huán)境,實現(xiàn)配置分離、協(xié)同管理,提升項目穩(wěn)定性與迭代效率,感興趣的朋友跟隨小編一起看看吧
    2025-08-08

最新評論

杭锦旗| 呼伦贝尔市| 岳阳市| 广河县| 阿坝| 长宁区| 虹口区| 溧水县| 略阳县| 法库县| 绍兴县| 永胜县| 焉耆| 黄大仙区| 固镇县| 张家川| 阜城县| 乐东| 买车| 宜昌市| 长泰县| 肥城市| 金阳县| 德安县| 肃宁县| 安顺市| 昂仁县| 吴忠市| 浪卡子县| 溧阳市| 桐梓县| 北碚区| 广平县| 兴隆县| 司法| 鄯善县| 固镇县| 浦北县| 吉林省| 育儿| 灌云县|