枚举类实现数据字典

平常写代码经常会遇到实际字典为一个类型 例如 1 男 2 女之类的 我们可以自定义一个枚举类 直接通过状态码来获取对应的属性值即可

public enum GenderEnum {
    MAN("0","男"),   WOMAN("1","女"), UNKNOW("3","未知");

    private final String code;
    private final String info;


    GenderEnum(String code, String info) {
        this.code = code;
        this.info = info;
    }

    /**
     * 根据code获取对应属性
     * @param code
     * @return
     */
    public static String getInfo(String code){
        for (GenderEnum genderEnum : GenderEnum.values()){
            if (genderEnum.getCode().equals(code)){
                return genderEnum.getInfo();
            }
        }
        return null;
    }

    /**
     * 根据属性获取对应状态码
     * @param info
     * @return
     */
    public static String getCode(String info){
        for (GenderEnum genderEnum : GenderEnum.values()){
            if (genderEnum.getInfo().equals(info)){
                return genderEnum.getCode();
            }
        }
        return null;
    }

    public String getCode() {
        return code;
    }

    public String getInfo() {
        return info;
    }
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SpringBoot中实现数据字典可以使用枚举类型或者数据库表两种方式。 1. 使用枚举类型 在Java中,可以使用枚举类型来定义数据字典。首先需要定义一个枚举类型,如下所示: ``` public enum GenderEnum { MALE("男"), FEMALE("女"); private String name; GenderEnum(String name) { this.name = name; } public String getName() { return name; } } ``` 在上面的代码中,我们定义了一个性别枚举类型,包含男和女两个值。每个枚举值都有一个对应的名称。 在需要使用数据字典的地方,可以直接使用枚举类型,如下所示: ``` @RequestMapping("/user/{id}") public User getUser(@PathVariable("id") Long id) { User user = userService.getUserById(id); user.setGender(GenderEnum.MALE.getName()); // 设置用户性别为男 return user; } ``` 2. 使用数据库表 另一种实现数据字典的方式是使用数据库表来存储数据字典。可以创建一个数据字典表,表中包含两个字段:code和name,分别表示数据字典项的代码和名称。如下所示: ``` CREATE TABLE `dict` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL COMMENT '字典代码', `name` varchar(50) NOT NULL COMMENT '字典名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据字典'; ``` 然后在代码中,可以通过调用数据访问层(DAO)的方法来获取数据字典项的值,如下所示: ``` @Service public class DictService { @Autowired private DictDao dictDao; public String getDictNameByCode(String code) { Dict dict = dictDao.findByCode(code); return dict != null ? dict.getName() : null; } } ``` 在上面的代码中,我们定义了一个DictService类,它通过调用DictDao的findByCode方法来获取数据字典项的名称。在使用数据字典的地方,可以调用DictService的方法来获取数据字典项的值,如下所示: ``` @RequestMapping("/user/{id}") public User getUser(@PathVariable("id") Long id) { User user = userService.getUserById(id); user.setGender(dictService.getDictNameByCode("gender_male")); // 设置用户性别为男 return user; } ``` 在上面的例子中,我们使用了一个代码为gender_male的数据字典项来表示男性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值