mybatis-plus使用@EnumValue处理枚举类型的示例代码
自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注解
packagecom.iscas.biz.mp.test.model.enums; importcom.baomidou.mybatisplus.annotation.EnumValue; importcom.fasterxml.jackson.annotation.JsonCreator; importcom.fasterxml.jackson.annotation.JsonValue; importcom.fasterxml.jackson.annotation.JsonView; importcom.iscas.biz.mp.test.model.TestEntity; importlombok.Getter; importjava.util.Objects; /** *//TODO * *@authorzhuquanwen *@vesion1.0 *@date2020/4/515:23 *@sincejdk1.8 */ publicenumSexEnum/*implementsIEnum*/{ /** *男 **/ MAN(1,"男"), /** *女 **/ WOMEN(2,"女"); @EnumValue privatefinalintcode; @JsonValue publicintgetCode(){ returnthis.code; } publicStringgetDescription(){ returndescription; } privatefinalStringdescription; SexEnum(intval,Stringdescription){ this.code=val; this.description=description; } @JsonCreator publicstaticSexEnumgetByCode(intcode){ for(SexEnumvalue:SexEnum.values()){ if(Objects.equals(code,value.getCode())){ returnvalue; } } returnnull; } /* @Override publicIntegergetValue(){ returncode; }*/ }
3、测试实体使用枚举
packagecom.iscas.biz.mp.test.model; importcom.iscas.biz.mp.test.model.enums.SexEnum; importlombok.Data; /** *//TODO * *@authorzhuquanwen *@vesion1.0 *@date2020/4/515:22 *@sincejdk1.8 */ @Data publicclassTestEntity{ privateStringname; privateSexEnumsex; }
4、测试读取和存储带有枚举的实体
packagecom.iscas.biz.mp.test.controller; importcom.iscas.biz.mp.test.mapper.TestEntityMapper; importcom.iscas.biz.mp.test.model.enums.SexEnum; importcom.iscas.biz.mp.test.model.TestEntity; importcom.iscas.templet.common.BaseController; importcom.iscas.templet.common.ResponseEntity; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.web.bind.annotation.*; importjava.util.List; /** *//TODO * *@authorzhuquanwen *@vesion1.0 *@date2020/4/515:22 *@sincejdk1.8 */ @RestController @RequestMapping("/testEntity") publicclassTestMpEnumControllerextendsBaseController{ @Autowired privateTestEntityMappertestEntityMapper; @GetMapping("/get") publicResponseEntitytestEntity(){ ResponseEntityresponse=getResponse(); ListtestEntities=testEntityMapper.selectList(null); response.setValue(testEntities); returnresponse; } @PostMapping("/post") publicResponseEntitytestSaveEntity(@RequestBodyTestEntitytestEntity){ ResponseEntityresponse=getResponse(); intinsert=testEntityMapper.insert(testEntity); response.setValue(insert); returnresponse; } }
到此这篇关于mybatis-plus使用@EnumValue处理枚举类型的示例代码的文章就介绍到这了,更多相关mybatis-plus@EnumValue枚举内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。