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

摘要:
valueMap=newHashMap<项);}publicvoisetKey(Stringkey){this.key=key;}publicIntegergetValue(){returnvalue;}public voisetValue(Integervalue){this.value=value;}}returnresult;

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

JAVA中枚举类型结合mysql数据的使用第1张JAVA中枚举类型结合mysql数据的使用第2张
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和枚举类型。

JAVA中枚举类型结合mysql数据的使用第3张JAVA中枚举类型结合mysql数据的使用第4张
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;
    }
}
枚举类型的创建

下面是数据的模型。

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

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

JAVA中枚举类型结合mysql数据的使用第6张JAVA中枚举类型结合mysql数据的使用第7张
@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层

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

免责声明:文章转载自《JAVA中枚举类型结合mysql数据的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Pycharm安装并配置jupyter notebook虚拟机安装中标麒麟桌面版7.0系统 + 升级Firefox浏览器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# 生成不重复随机字符串 (1秒内生成1000000个) PHP

生成不重复随机字符串 生成1000000个用时不到1秒。 如果要生成6位随机的不重复字符串,一般的想法是,使用Random生一个字符串,记录到数组中,再生成一个如果不在数组中则插入。直到生够数量。 但这样效率会很低。对于6位随机字符,数字+字母=36个字符。6位转化为数字最大数为 36的6次方 = 2176782336。 只要生成小于最大数的随机数,再转化...

21.扩展

  扩展就是为一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和 Objective-C 中的分类类似。   Swift 中的扩展可以:  添加计算型属性和计算型类型属性  定义实例方法和类型方法  提供新的构造器  定义下标  定义和使用新的嵌套类型  使一个已有类型符合某个...

C#笔记21:多线程之线程同步中的锁定lock、Monitor

C#笔记21:多线程之线程同步中的锁定lock、Monitor 1:什么是锁 2:如何选择锁定对象 3:如何锁定集合 4:Monitor 1:什么是锁      lock 语句可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 2:如何选择锁定对象      提供给 lock 关键字的参数必须为基于引用...

Robot Framework+adb框架实现Android集成自动化测试案例⑶——L3公共层

一、L3公共层.robot 以下是封装的整个项目公用的关键字。 L3层关键字.robot *** Settings *** Library Public.py *** Variables *** ${air} ${EMPTY} *** Keywords *** 截图 [Arguments] ${i...

document.cookie的使用

设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cookie="userId=828";如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如: document.cookie="userId=828; userName=hulk"; 在cookie的名或值中不...

Python TypeError:not all arguments converted during string formatting

刚开始学python,对于print 的用法还不太熟练,所以会出一些比较低级的错误 TypeError:not all arguments converted during string formatting 用百度翻译翻译一下,不是所有参数都在字符串格式化期间转换 出现这个的原因是% 前后变量类型不一样 以判断是否闰年举例: 错误例子: 第一种方法,还...