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

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

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

前言

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

Maven引入的依賴(lài)

<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類(lèi)

@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;
}

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

@Getter
public enum ChargeCategoryEnum {
    CHARGE("CHARGE",1,"基本費(fèi)"),
    PENALTY("PENALTY",2,"違約金");
    private String code;
    @EnumValue  //在需要保存到數(shù)據(jù)庫(kù)的值上面加上注解
    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類(lèi)

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

配置文件

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

測(cè)試代碼

@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);
    }
}

拓展

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

@Getter
public enum ChargeCategoryEnum {
    CHARGE("CHARGE",1,"基本費(fèi)"),
    PENALTY("PENALTY",2,"違約金");
    private String code;
    @EnumValue  //在需要保存到數(shù)據(jù)庫(kù)的值上面加上注解
    private Integer value;
    @JsonValue    //需要在前端展示哪個(gè)值就在哪個(gè)屬性上加上該注解
    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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中@PostConstruct的實(shí)現(xiàn)方法

    Spring中@PostConstruct的實(shí)現(xiàn)方法

    大多數(shù)java程序員都使用過(guò)@PostConstruct注解,它的作用就是在Bean初始化完成后執(zhí)行,相當(dāng)于我們常說(shuō)的init()方法,但是我們看@PostConstruct只有單單的一個(gè)注解,它到底是如何實(shí)現(xiàn)在Bean初始化完成后就被調(diào)用的呢,本文將詳細(xì)給大家介紹一下
    2023-06-06
  • java?串口工具jSerialComm示例詳解

    java?串口工具jSerialComm示例詳解

    這篇文章主要介紹了java?串口工具jSerialComm,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • java使用iterator遍歷指定目錄示例分享

    java使用iterator遍歷指定目錄示例分享

    這篇文章主要介紹了java使用iterator遍歷指定目錄示例,需要的朋友可以參考下
    2014-04-04
  • 基于XML配置Spring的自動(dòng)裝配過(guò)程解析

    基于XML配置Spring的自動(dòng)裝配過(guò)程解析

    這篇文章主要介紹了基于XML配置Spring的自動(dòng)裝配過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java編程實(shí)現(xiàn)軌跡壓縮算法開(kāi)放窗口實(shí)例代碼

    Java編程實(shí)現(xiàn)軌跡壓縮算法開(kāi)放窗口實(shí)例代碼

    這篇文章主要介紹了Java編程實(shí)現(xiàn)軌跡壓縮算法開(kāi)放窗口實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • Java多線(xiàn)程并發(fā)編程 Synchronized關(guān)鍵字

    Java多線(xiàn)程并發(fā)編程 Synchronized關(guān)鍵字

    現(xiàn)有一成員變量 Test,當(dāng)線(xiàn)程 A 調(diào)用 Test 的 synchronized 方法,線(xiàn)程 A 獲得 Test 的同步鎖,同時(shí),線(xiàn)程 B 也去調(diào)用 Test 的 synchronized 方法,此時(shí)線(xiàn)程 B 無(wú)法獲得 Test 的同步鎖,必須等待線(xiàn)程 A 釋放 Test 的同步鎖才能獲得從而執(zhí)行對(duì)應(yīng)方法的代碼
    2017-05-05
  • java面試應(yīng)用上線(xiàn)后Cpu使用率飆升如何排查

    java面試應(yīng)用上線(xiàn)后Cpu使用率飆升如何排查

    這篇文章主要為大家介紹了java面試中應(yīng)用上線(xiàn)后Cpu使用率飆升如何排查的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程

    Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程

    這篇文章主要介紹了Idea 搭建Spring源碼環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java設(shè)計(jì)模式中的建造者(Builder)模式解讀

    Java設(shè)計(jì)模式中的建造者(Builder)模式解讀

    這篇文章主要介紹了Java設(shè)計(jì)模式中的建造者(Builder)模式解讀, 建造者模式是一種創(chuàng)建對(duì)象的設(shè)計(jì)模式,它通過(guò)將對(duì)象的構(gòu)建過(guò)程分解為多個(gè)步驟,并使用一個(gè)建造者類(lèi)來(lái)封裝這些步驟,從而使得對(duì)象的構(gòu)建過(guò)程更加靈活和可擴(kuò)展,需要的朋友可以參考下
    2023-10-10
  • mybatis-plus多表關(guān)聯(lián)查詢(xún)功能的實(shí)現(xiàn)

    mybatis-plus多表關(guān)聯(lián)查詢(xún)功能的實(shí)現(xiàn)

    本文給大家介紹mybatis-plus多表關(guān)聯(lián)查詢(xún)功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11

最新評(píng)論