在我的学习过程中,我使用到了的枚举类型和数据库配合,下面是使用过程。
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方法 }
其中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(); } }
若之后还有用到其他类型,我还会补充。。。。