在JavaWeb中使用enum

本文探讨了在JavaWeb应用中,如何在实体类中使用enum属性,并解决了在jsp、实体类与数据库之间的取值赋值问题。同步请求通过SexEditor的setAsText()和getAsText()进行类型转换,异步请求利用JsonValue注解处理JSON转换。文章比较了enum和字典表处理常量的优缺点。
摘要由CSDN通过智能技术生成

本文基于spring4.2、mybatis3.4实现。

今天打通了从jsp到实体类到DB的全过程,其中有些地方还是不够完美。欢迎拍砖。

概述:

这里主要讲的是,实体类中包含enum属性,解决(jsp 与 实体类) 之间 以及 (实体类 与 DB) 之间的取值赋值问题。

正文:

基础类:

1、实体类User,其sex属性是enum。

public class User implements Serializable {
    private String id;
    private String nickname;
    private Sex sex;
    
    //getter and setter
}

2、Sex,一个简单的enum,覆盖toString只是便于查看,JsonValue注解后面会提到。

public enum Sex {

    UNKNOW("未知"), MALE("男"), FEMALE("女");

    private final String value;

    Sex(String value) {
        this.value = value;
    }

    @JsonValue
    public String getValue() {
        return value;
    }

    @Override
    public String toString(){
        return this.getValue();
    }

    public static Sex parse(String value) {
        for (Sex sex : Sex.values()) {
            if (sex.getValue().equals(value)) {
                return sex;
            }
        }
        throw new IllegalArgumentException("不存在[" + value + "]对应的枚举值");
    }
}


实体类 <-> DB

UserService、UserDao 以及 UserDao.xml是常规写法,不多说。
@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    @Transactional(readOnly=true)
    public User selectById(String id) {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值