欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mybatis-plus使用@EnumValue处理枚举类型的示例代码

程序员文章站 2022-06-09 15:49:46
自mybatis3.1.0开始,如果你无需使用原生枚举,可配置默认枚举来省略扫描通用枚举配置 默认枚举配置1、配置文件配置枚举所在的包#配置枚举 支持通配符 * 或者 ; 分割mybatis-plus...

自mybatis3.1.0开始,如果你无需使用原生枚举,可配置默认枚举来省略扫描通用枚举配置 默认枚举配置

1、配置文件配置枚举所在的包

#配置枚举 支持通配符 * 或者 ; 分割
mybatis-plus.type-enums-package=com.iscas.biz.mp.test.model.enums
mybatis-plus.configuration.default-enum-type-handler=org.apache.ibatis.type.enumordinaltypehandler

2、定义一个枚举,在需要存入数据库的字段上加上@enumvalue注解

package com.iscas.biz.mp.test.model.enums;

import com.baomidou.mybatisplus.annotation.enumvalue;
import com.fasterxml.jackson.annotation.jsoncreator;
import com.fasterxml.jackson.annotation.jsonvalue;
import com.fasterxml.jackson.annotation.jsonview;
import com.iscas.biz.mp.test.model.testentity;
import lombok.getter;

import java.util.objects;

/**
 * //todo
 *
 * @author zhuquanwen
 * @vesion 1.0
 * @date 2020/4/5 15:23
 * @since jdk1.8
 */

public enum sexenum /*implements ienum<integer>*/ {

  /**
   * 男
   * */
  man(1, "男"),

  /**
   * 女
   * */
  women(2, "女");


  @enumvalue
  private final int code;

  @jsonvalue
  public int getcode() {
    return this.code;
  }

  public string getdescription() {
    return description;
  }

  private final string description;
  sexenum(int val, string description) {
    this.code = val;
    this.description = description;
  }

  @jsoncreator
  public static sexenum getbycode(int code) {
    for (sexenum value : sexenum.values()) {
      if (objects.equals(code, value.getcode())) {
        return value;
      }
    }
    return null;
  }
/*
  @override
  public integer getvalue() {
    return code;
  }*/
}

3、测试实体使用枚举

package com.iscas.biz.mp.test.model;

import com.iscas.biz.mp.test.model.enums.sexenum;
import lombok.data;

/**
 * //todo
 *
 * @author zhuquanwen
 * @vesion 1.0
 * @date 2020/4/5 15:22
 * @since jdk1.8
 */
@data
public class testentity {
  private string name;

  private sexenum sex;
}

4、测试读取和存储带有枚举的实体

package com.iscas.biz.mp.test.controller;

import com.iscas.biz.mp.test.mapper.testentitymapper;
import com.iscas.biz.mp.test.model.enums.sexenum;
import com.iscas.biz.mp.test.model.testentity;
import com.iscas.templet.common.basecontroller;
import com.iscas.templet.common.responseentity;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.*;

import java.util.list;

/**
 * //todo
 *
 * @author zhuquanwen
 * @vesion 1.0
 * @date 2020/4/5 15:22
 * @since jdk1.8
 */
@restcontroller
@requestmapping("/testentity")
public class testmpenumcontroller extends basecontroller {
  @autowired
  private testentitymapper testentitymapper;

  @getmapping("/get")
  public responseentity testentity() {
    responseentity response = getresponse();
    list<testentity> testentities = testentitymapper.selectlist(null);
    response.setvalue(testentities);
    return response;
  }
  @postmapping("/post")
  public responseentity testsaveentity(@requestbody testentity testentity) {
    responseentity response = getresponse();
    int insert = testentitymapper.insert(testentity);
    response.setvalue(insert);
    return response;
  }

}

到此这篇关于mybatis-plus使用@enumvalue处理枚举类型的示例代码的文章就介绍到这了,更多相关mybatis-plus @enumvalue 枚举 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!