前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis-Plus 通用枚举类型的使用

Mybatis-Plus 通用枚举类型的使用

作者头像
wsuo
发布2021-08-24 16:26:24
2K0
发布2021-08-24 16:26:24
举报
文章被收录于专栏:技术进阶之路

有些字段,例如性别、婚姻状况、等标志性字段,在数据库中存放的形式往往是数字,0 或者 1,这样做的好处是存取的效率高节省空间,但是前端的在展示的时候不能直接展示,需要进行一个判断,但是判断逻辑放在前端不妥,所以后端应该提前将值转换好返回该前端。

Mybatis-Plus 中我们可以使用枚举类型来完成这一操作,他能自动将数据库里的字段映射成我们需要的字段,例如性别,新建枚举类如下:

代码语言:javascript
复制
@Getter
public enum GenderType {
    WOMEN(0, "女"),
    MAN(1, "男");

    @EnumValue
    private Integer key;

    @JsonValue
    private String name;

    GenderType(Integer key, String name) {
        this.key = key;
        this.name = name;
    }
    
    @Override
    public String toString() {
        return this.name;
    }
}

其中最关键的是 @EnumValue 注解,他是标注数据库里存的字段,这里数据库里存的是 key@JsonValue 标注的是要展示的字段,这里我们想展示给前端的是 name 字段,同时要重写 toString 方法为我们想要的,因为系统会自动调用该方法作为前端的展示值,这里想要展示 name,所以直接返回它就行了。

关键点:

  • @EnumValue:标注哪一个字段是数据库里的字段;
  • @JsonValue:标注要开启自定义序列化返回值;
  • toString:具体的返回值;

同时我们需要在与数据库关联的实体类中修改类型,将性别字段改为枚举类型:

代码语言:javascript
复制
@Data
@TableName("table")
public class ZhbfDb extends SymqBaseEntity {
    /**
     * 姓名
     */
    private String name;
    /**
     * 性别
     */
    private GenderType gender;
}

在配置文件中配置扫描注解类型:

代码语言:javascript
复制
#mybatis-plus 配置
mybatis-plus:
  type-enums-package: com.demo.test.enums

这个时候再去查询,返回的结果就直接是我们在枚举类型中定义的 name 值了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档