JAVA中枚举类型结合mysql数据的使用

在我的学习过程中,我使用到了的枚举类型和数据库配合,下面是使用过程。

 

public class TUser extends User implements Serializable {
    private static final long serialVersionUID = 1L;
    private Gender userGender; //用户性别
    private String userAvatar; //用户头像
    private Integer userAge; //用户年龄
    private Date userActivityDate; //用户开户时间
    private java.util.Date operationTime; //操作时间
    private UserStauts userStatus; //用户状态
    private Float userAsset; // 用户资产
    private String userEmail; //用户邮箱
    private String userNickname; //用户昵称
    private String userPayPassword; //用户支付密码
    private List<TTradeLog> tradeLogs; //查询交易记录
        ...................
        省去setter和getter方法   
}
Javabean代码

 

其中userGender和userStatus和枚举类型。

package com.Pt.utils.enums;

import java.util.HashMap;

public enum Gender{
    MALE("男", 1),FAMALE("女", 2),SECRET("不公开", 3);
    private Gender(String key, Integer value){
        this.key = key;
        this.value = value;
    }
    private String key;
    private Integer value;
    //将数值1,2,3和MALE,FAMALE,SECRET一起封装到HashMap中
    private static HashMap<Integer, Gender> valueMap = new HashMap<Integer, Gender>();
    //静态代码块
    static{
        for (Gender item : Gender.values()) {
            valueMap.put(item.getValue(), item);
        }
    }
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public Integer getValue() {
        return value;
    }
    public void setValue(Integer value) {
        this.value = value;
    }
    //前台传进来的值通过这个方法来转换为Gender类型
    public static Gender getByValue(int value) {
        Gender result = valueMap.get(value);
        if(result == null) {
            throw new IllegalArgumentException("No element matches " + value);
        }
        return result;
    }
}
枚举类型的创建

下面是数据的模型。

最后。前台来请求URL时直接这样。

@RequestMapping("/updateUserInfo")
public String updateUserInfo(TUser user, Integer gender) {
    try {
                //将用户性别封装为Gender枚举类型
                //和Javabean中对应
        user.setUserGender(Gender.getByValue(gender));
        return service.updateUserInfo(user);
    } catch (Exception e) {
        e.printStackTrace();
        return returnError();
    }
}
Controller层

若之后还有用到其他类型,我还会补充。。。。

 

posted @ 2018-11-19 08:38  花椒、斯国一  阅读(9629)  评论(0编辑  收藏  举报