java学习之路

java返回结果集的封装

2019-10-28  本文已影响0人  唯有努力不欺人丶

其实这个每个成熟的程序员都会自有一套方法,我也是这样。
还是从第一家工作的公司传承下来的resultBean返回也是大大小小使用了一年多。
因为一直要么是第一个团队统一使用这个方法,要么第二份工作作为唯一的一个开发自然想怎么写怎么写。所以也是神奇的,我近日维护一个别人的项目才看到了另一种封装方法。
平心而论,不同的方法实现的结果是相同的,只不过使用起来还是很不同,比如不得不承认我反正喜欢现在这个。
两种我都会列出来,然后以后如果再接触到新的也会尽量记得续上。

ResultBean返回值

public class ResultBean {

    private int status; // 状态码:200是正常调用 500是程序出错

    private String msg; // 返回消息:成功还是失败

    private Object data; // 返回的对象。有时候我们要返回一些数据就放在这个里,如果不需要返回数据则是null

    private Boolean result; // 接口调用的结果 true是成功。false是失败。

    public int getStatus() {

        return status;

    }

    public void setStatus(int status) {

        this.status = status;

    }

    public String getMsg() {

        return msg;

    }

    public void setMsg(String msg) {

        this.msg = msg;

    }

    public Boolean getResult() {

        return result;

    }

    public void setResult(Boolean result) {

        this.result = result;

    }

    public Object getData() {

        return data;

    }

    public void setData(Object data) {

        this.data = data;

    }

    public ResultBean() {

    }

    public ResultBean(int status, String msg, Object data, Boolean result) {

        super();

        this.status = status;

        this.msg = msg;

        this.data = data;

        this.result = result;

    }

    /**
     * 对返回值的封装
     * 
     * @param status
     * @param msg
     * @param object
     * @param flag
     * @return
     */
    public static ResultBean result(int status, String msg, Object object, boolean flag) {
        return new ResultBean(status, msg, object, flag);
    }

}

这种方法是我用了很久 的方法,用起来也还算是简单。大概到返回的时候

ResultBean.result(200/500,"XXX",data,true/false);

就ok了。

R返回值封装

其实仔细想想,只是一个名字的不同,不过这个R好像是有故事的,来源于sun的一个封装。这个返回值的封装很有灵性和使用方便。反正比我之前用的好啊。

public class R extends HashMap<String, Object> {
    private static final long serialVersionUID = 1L;
    
    public R() {
        put("code", 200);
        put("msg", "success");
    }
    
    public static R error() {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员");
    }
    
    public static R error(String msg) {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
    }
    
    public static R error(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("msg", msg);
        return r;
    }
    
    public static R ok(Map<String, Object> map) {
        R r = new R();
        r.putAll(map);
        return r;
    }
    
    public static R ok() {
        return new R();
    }

    public R put(String key, Object value) {
        super.put(key, value);
        return this;
    }
}

这个很清晰明了,只有两个code,msg是必填项,具有有什么data可以自己往里面put。对msg或code不同可以自己put覆盖原来的结果。如果没有返回值的正常返回只要R.ok()就ok了。
反正是大爱这种,然后维护别人的项目也算是学到了自己的东西。
就到这里了,简单的介绍了两种,以后遇到觉得比较好的会继续往上加。

上一篇下一篇

猜你喜欢

热点阅读