网站建设公司怎么算专业,广州建模培训,免费建站哪个好,竹子建站邀请码狡兔尚且三窟#xff0c;多学一招总没错吧#xff1f; #x1f680;#x1f680;扎哇太枣糕的博客首页#x1f680;#x1f680; #x1f30f; 抛出问题 如果让你实现这么一个功能#xff1a;将性别使用数字存储到数据库中#xff0c;但是前端需要获取到的是具体的性… 狡兔尚且三窟多学一招总没错吧 扎哇太枣糕的博客首页 抛出问题 如果让你实现这么一个功能将性别使用数字存储到数据库中但是前端需要获取到的是具体的性别描述(比如男女)你会怎么实现 相信有很多的小伙伴想到的就是在前端或者后端使用if语句判断从数据库中获取到的值如果是0的话就返回或者输出女如果是1的话就返回或者输出男。 可以 但不优雅 那我用switch判断总算优雅了吧 优雅 但不够装13 不够装13也是错低调不是错但是我们要让老板感觉花这些钱雇自己他值了甚至还要让他感觉他赚到了。 解决问题 对于MP的通用枚举官方文档如是说道mybatis-plus的官方文档对通用枚举的介绍总结来说就是简单的三个步骤创建枚举类、修改配置文件、修改实体类字段属性接下来就以一个案例加深小伙伴们的理解 第一步 创建枚举类并给相应的字段添加相应的注解两个注解的注释都在代码中给出了
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;/*** author : mereign* date : 2022/3/18 - 15:28* desc : 性别的枚举类*/Getter
AllArgsConstructor
public enum SexEnum {FEMALE(0, 女),MALE(1, 男),GROUP(2, 组合),NONE(3, 不详);// 将注解标识的属性值存储到数据库中EnumValueprivate Integer sex;// 将注解标识的属性值返回给前端JsonValueprivate String sexName;}第二步 配置文件
mybatis-plus:# 声明枚举类所在包type-enums-package: com.xiaoyu.enums第三步 修改实体类字段属性其他的属性都照常设置
/*** 性别0女1男2组合3不明*/
private SexEnum sex;前端控制器中使用的方法是MP中自带的list方法
/*** 查询所有歌手* return*/
RequestMapping(value /allSinger, method RequestMethod.GET)
public Object allSinger() {// 查询所有的歌手信息并返回return service.list();
}测试 怎么回事前端并没有输出任何内容难道是装13不成别急让我们使用测试类简单分析一波 根据测试类的返回值可以得知从数据库中查询到的sex字段值既不是0|1也不是男|女而是null这到底是怎么回事 经过半天的百度和试错最终将原因锁定在字段类型上原来是我们的数据库中sex的类型是tinyint而枚举类中使用EnumValue修饰的字段类型是integer由于字段类型不匹配导致返回的是一个null这也就能够解释得通为什么前端不显示sex了。 我的解决方案是将数据库中的类型改为int虽然说数据库中使用tinyint可以节省数据库的存储空间但是由于本人的能力有限无法找到tinyint对应的java类型最后无奈修改了数据库的表结构如果小伙伴们有妙招的话还请评论区告诉小扎扎如此操作前端就显示信息了