项目中用到,比较好用!!

用户前端与后台的交互数据,这个封装类中包含分页、数据、错误码、状态码等信息!!

亲测好用哦!

一个类DataWrapper

public class DataWrapper<T>{
    private CallStatusEnum callStatus;
    private ErrorCodeEnum errorCode;
    private T data;
    private int numberPerPage; // 用于分页结果
    private int currentPage;
    private int totalNumber;
    private int totalPage;
    private String message ;
    private String recordUpdateTime ; //redis数据插入时间

    public DataWrapper() {
        callStatus = CallStatusEnum.SUCCEED;
        errorCode = ErrorCodeEnum.No_Error;
    }

    public static <T> DataWrapper<T> createInstance(){
        return new DataWrapper<T>() ;
    }

    public CallStatusEnum getCallStatus() {
        return callStatus;
    }

    public DataWrapper<T> setCallStatus(CallStatusEnum callStatus) {
        this.callStatus = callStatus;
        return this ;
    }

    public ErrorCodeEnum getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(ErrorCodeEnum errorCode) {
        this.errorCode = errorCode;
        if (!errorCode.equals(ErrorCodeEnum.No_Error)) {
            this.callStatus = CallStatusEnum.FAILED;
        }
    }

    public T getData() {
        return data;
    }

    public DataWrapper<T> setData(T data) {
        this.data = data;
        return this ;
    }

    public int getNumberPerPage() {
        return numberPerPage;
    }

    public void setNumberPerPage(int numberPerPage) {
        this.numberPerPage = numberPerPage;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getTotalNumber() {
        return totalNumber;
    }

    public void setTotalNumber(int totalNumber) {
        this.totalNumber = totalNumber;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public String getMessage() {
        return message;
    }

    public DataWrapper<T> setMessage(String message) {
        this.message = message;
        return this ;
    }

    public String getRecordUpdateTime() {
        return recordUpdateTime;
    }

    public DataWrapper<T>  setRecordUpdateTime(String recordUpdateTime) {
        this.recordUpdateTime = recordUpdateTime;
        return this ;
    }

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

两个枚举CallStatusEnum、ErrorCodeEnum

public enum CallStatusEnum implements Serializable {
    SUCCEED,
    FAILED,;

    CallStatusEnum() {
    }
}
public enum ErrorCodeEnum implements Serializable {
    No_Error("No ERROE!", 0),
    Error("Unknown error!", 1),
    NO_SUCH_USER("Can't find username",2),
    IncorrectCredentials("IncorrectCredentialsException",3),
    LoginFailed("AuthenticationException",4),
    USER_EXIST("User already exist in db",5),
    PASSWORD_ERROR("Error is password",6),
    REGISTER_FAILED("Register failed",7),
    PARSE_DATE("Parse  Date error",8),
    ExcessiveAttempts("Try password more than 5 times",9) ,
    NO_ROLE("User has no role!" , 10) ,
    USER_STATE_ERROR("User state error! Disable Login" , 11),
    USER_IDENTITY_ERROR("User Identity error! Disable Login" , 12),
    DB_ERROR("database maybe error!" , 13) ,
    WEB_SP_ERROR("from webSp maybe error!" , 14) ,
    MFA_VERIFY_ERROR("mfa verify random code error!" , 15) ,
    MFA_SEND_ERROR("mfa send random code error!" , 16) ,
    MFA_SEND_EXCESSIVE("ask send random code excessive!" , 17),
    PHONE_NUMBER_ERROR("phone number is empty or error!" , 18),
    IMAGECODE_ERROR("image code error" , 19),
    VERIFYCODE_ERROR("telephone verify code incorrect",20);

    private String label;
    private Integer code;

    ErrorCodeEnum() {
    }

    ErrorCodeEnum(String label, Integer code) {
        this.label = label;
        this.code = code;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public int getCode() {
        return code;
    }

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

    public static ErrorCodeEnum parse(int code) {
        for (ErrorCodeEnum theEnum : ErrorCodeEnum.values()) {
            if (theEnum.getCode() == code) {
                return theEnum;
            }
        }
        return No_Error;
    }
}

Java数据封装类的更多相关文章

  1. Java秒杀简单设计三:数据封装类

    上一篇https://www.cnblogs.com/taiguyiba/p/9828984.html 整合了数据库表和Dao层代码 这一篇继续设计数据封装类: 涉及到获取秒杀地址,查询,返回秒杀结果 ...

  2. java中封装类(一)

    java中封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void 其中Void对于使用者并无多大意义,也不可以构造任 ...

  3. Java 数据持久化系列之池化技术

    在上一篇文章<Java 数据持久化系列之JDBC>中,我们了解到使用 JDBC 创建 Connection 可以执行对应的SQL,但是创建 Connection 会消耗很多资源,所以 Ja ...

  4. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  5. 关于JAVA数据储存

    关于JAVA数据储存: 在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register) 这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部.但是寄存器的数量极其有限,所以 ...

  6. Java数据类型和MySql数据类型对应一览

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  7. 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...

  8. Java数据类型转换浅析

    Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...

  9. Java数据解析之JSON

    文章大纲 一.JSON介绍二.常见框架介绍与实战三.Studio中GsonFormat插件使用四.项目源码下载(含参考资料)五.参考文档   一.JSON介绍 1. 简介   JSON 的全称是 Ja ...

随机推荐

  1. sqlx基础语法与应用

    基础: ``` 引用:_ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ``` 初始化 ...

  2. 20145321 《Java程序设计》第9周学习总结

    20145321 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC 1.JDBC简介: JDBC是Java联机数据库的标准规范,它定义一组标准 ...

  3. [HAOI2015]T2

    [题目描述] 有一棵点数为N的树,以点1为根,且树点有边权.然后有M个操作,分为三种: 操作1:把某个节点x的点权增加a. 操作2:把某个节点x为根的子树中所有点的点权都增加a. 操作3:询问某个节点 ...

  4. 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】

    本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...

  5. Java 可重入锁

    一般意义上的可重入锁就是ReentrantLock http://www.cnblogs.com/hongdada/p/6057370.html 广义上的可重入锁是指: 可重入锁,也叫做递归锁,指的是 ...

  6. RabbitMQ单机多实例配置

    由于某些因素的限制,有时候你不得不在一台机器上去搭建一个rabbitmq集群,当然这种集群只适合自己玩玩,验证下结论,这个有点类似zookeeper的单机版.真实生成环境还是要配成多机集群的.有关怎么 ...

  7. centos7下使用yum安装mysql数据库

    CentOS7的yum源中默认是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1.下载并安装MySQL官方的 Yum Repository wget -i -c http: ...

  8. 梅森素数应用 nefu 120

    梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素 ...

  9. 2017 beijing icpc A - Euler theorem

    2017-09-22 21:59:43 writer:pprp HazelFan is given two positive integers a,ba,b, and he wants to calc ...

  10. vue-cli Uncaught SyntaxError: Use of const in strict mode解决办法

    vue-cli初始化项目,开发环境运行项目使用了webpack-dev-server,而最新版本webpack-dev-server@2.9.1运行项目时,并不能成功的把es6语法转化为es5,所以在 ...