栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java封装结果集

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java封装结果集

java封装结果集 存在问题

一个用户的操作,比如登录,就可能会有很多种情况,用户层面的:账号错误、密码错误;服务器层面的:数据库错误等等情况。但是我们正常的是直接把一个参数解析成json对象返回给前端,那我们如何去判断是哪一种情况,并给用户一个反馈信息呢?

解决思路

我们平时可以直接解析一个java对象成json返回前端

//1. 创建一个user对象
User user = new User();
//2。 解析成json对象
String json = JSONObject.toJSONString(user);
//3. 返回前端
PrintWriter writer = response.getWriter();
writer.write(json);
writer.close();

既然可以直接解析一个java对象,那我们能不能新建一个类,里面可以存java对象(data:前端需要的数据),编码信息(code:提供前端判断)和提示信息(msg:提示用户的信息)。

解决办法
package cn.stopyc.constant;


public class Result {
    
    private Integer code;
    
    private String msg;

    
    private T data;

    public Result() {
        super();
    }

    public Result(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Result(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "Result{" +
                "code=" + code +
                ", msg='" + msg + ''' +
                ", data=" + data +
                '}';
    }
}



@WebServlet("/user
public enum ResultEnum {
    //自定义
    //通用
    UNKNOWN_ERROR(-1,"未知错误"),
    SUCCESS(200,"成功"),
    SERVER_INTERNAL_ERROR(500,"服务器内部错误"),
    RESOURCE_NOT_FOUND(404,"资源未找到"),
    PARAMETER_NOT_VALID(400,"参数不合法"),
    DATABASE_ERROR(600,"数据库操作错误"),
    //用户模块 5002XX
    PASSWORD_FAILED(500200,"密码错误"),
    REPEAT_NAME(500210,"用户名重复"),
    FIND_USER_FAILED(500220,"用户名不存在"),
    CHECK_CODE_ERROR(500230,"验证码错误"),
    //任务模块 6002XX
    NO_TASK(600200,"当前没有任务"),
    //.......
 


    ;
    
    private Integer code;
    
    private String msg;

    ResultEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

那么以后的service层封装结果集的时候,直接调用枚举

return new Result<>(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMsg(), user);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号