zoukankan      html  css  js  c++  java
  • 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层

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

    努力有用的话,还要天才做什么呢?
  • 相关阅读:
    c++函数模板
    C++左移运算符重载
    and or bool and a or b 原理解释
    Python的垃圾回收机制
    《C++ 101条建议》学习笔记——第一章快速入门
    在应用中嵌入Python:转
    使用C++扩展Python的功能 转自:http://blog.csdn.net/magictong/article/details/8897568#comments
    python扩展实现方法--python与c混和编程 转自:http://www.cnblogs.com/btchenguang/archive/2012/09/04/2670849.html
    python文件头的#-*- coding: utf-8 -*- 的作用
    Pythhon 字典 key in dict 比 dict.has_key (key)效率高 为什么?
  • 原文地址:https://www.cnblogs.com/crazy-xf/p/9981278.html
Copyright © 2011-2022 走看看