当前位置: 移动技术网 > IT编程>开发语言>Java > mybatis-plus使用@EnumValue处理枚举类型的示例代码

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

2020年09月02日  | 移动技术网IT编程  | 我要评论
自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 枚举 内容请搜索移动技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持移动技术网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网