这是自己记录在工作中碰见的碰见的小白知识,希望大家一起进步。写错了欢迎指正。
在开发工作中数据库中 采用 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; }
总结:写代码就是数据的转换,拿到数据,自己根据需求处理数据, 处理完后根据业务需求开始使用。 还有啊 写代码 知道拆分,一个方法尽量干一件事,提高方法的复用性。