美文网首页java学习之路
java返回结果集的封装

java返回结果集的封装

作者: 唯有努力不欺人丶 | 来源:发表于2019-10-28 09:26 被阅读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了。
    反正是大爱这种,然后维护别人的项目也算是学到了自己的东西。
    就到这里了,简单的介绍了两种,以后遇到觉得比较好的会继续往上加。

    相关文章

      网友评论

        本文标题:java返回结果集的封装

        本文链接:https://www.haomeiwen.com/subject/uvsvvctx.html