枚举类当字典在项目中使用。

这是自己记录在工作中碰见的碰见的小白知识,希望大家一起进步。写错了欢迎指正。

在开发工作中数据库中 采用 0 1 或者 更多 数字 代表不同的含义,实际数据库中仍然是 0 1 字段类型 int 或者varchar 一样。

我的小demo要求 在前端页面显示 01 代表的汉字, 我的是正常或者删除。

具体开发流程:

要求:数据库中是数字 0 正常 1删除  在前台页面显示汉字。

解决方法:公司里面都有方法,你只要重写方法就好了。

步骤:先从前端页面拿到路径

定位到控制层,

这是一个接口,公司封装好的,自己直接继承就好了。

 

 从查询所有数据。思路是:在查询所有数据的时候  ,重写父类方法,将数据拦截下来,并且将数据进行转换。枚举类长这样

public enum SystemEnum {

    NORMAl("0", "正常"),
    DELETE("1", "删除");


    private String code;
    private final String message;

    SystemEnum(final String code, final String message) {
        this.code = code;
        this.message = message;
    }

    public static String getMessage(final String code) {
        for (final SystemEnum mblx : SystemEnum.values()) {
            if (mblx.getCode().equals(code)) {
                return mblx.getMessage();
            }
        }
        return "";
    }

}

 控制层 说明

public class SjzcSystemController extends BaseController<SjzcSystemService, SjzcSystem, SjzcSystemDTO, SjzcSystemListVO> {
// BaseController 这是公司里面封装好的通用方法(curd,直接继承技能用方法了)

  @Override
    public ResultVO<PageVO<SjzcSystemListVO>> list() {
 // 利用super关键字指向父类,并且得到查询数据。
        ResultVO<PageVO<SjzcSystemListVO>> resultVO  = super.list();
//从右往左读;枚举类中的数据替换,数据库中的 01 
        resultVO.getResult().getData().forEach(vo->vo.setSystemStatus(SystemEnum.getMessage(vo.getSystemStatus())));
        return resultVO;
    }
}

给前端一个下拉框的接口:这是放在实现类impl中写的方法。

public List<Map<String, Object>> selectData(){

    SystemEnum[] sys = SystemEnum.values();
// SystemEnum.values()这个方法可以将枚举类转换成一个枚举类型的数组,转换成数组之后我们就可以通过下标来访问我们的枚举类中的值。
    List<Map<String, Object>> list = new ArrayList<>();
    for(SystemEnum data:sys){
                //
        Map<String, Object> dataMap = new HashMap<>(2);
                //枚举最基础的用法,将枚举数组中往里面塞枚举类的信息。
        dataMap.put("code",data.getCode());
        dataMap.put("name",data.getMessage());
      
          list.add(dataMap);
    }
    return list;
}

总结:写代码就是数据的转换,拿到数据,自己根据需求处理数据, 处理完后根据业务需求开始使用。 还有啊 写代码 知道拆分,一个方法尽量干一件事,提高方法的复用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值