zoukankan      html  css  js  c++  java
  • java链式操作

    vo层:

    package com.wgc.todo.vo;
    
    import com.github.pagehelper.Page;
    
    //T是 模板 替换,编译期擦除
    // new ResultVO<String>(); // java javac 编译
    // new ResultVO<Student>();
    /*定义这个类的作用是,
    * 在是try{
    * }catch(Exception ex){
    *   return null; //不能这样写,如果数据库内没有数据返回的是一个null
    *   //那我们这里写,返回的null就不知道是报错,还是没数据也报错,表达的意思不明确
    *   //后来经过修改,人们想到在服务器与客无端交互是加一层,就是vo层的出现
    *   //vo层是为了明确的指出返回的结果是否是正确性,并于返回更多的信息到客无端,
    *   //让客无端明白是否成功或报错
    * }
    * Http协议中,返回状态码
    * 1开头表示:信息错误
    * 如:
    * 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
    * 2开头表示: 发送请求成功,并返回数据
    * 3开头表示:url转发
    * 4开头表示:客无端错误
    * 5开头表示:服务器错误
    * */
    public class ResultVO<T> {
        private int code;
        private T data;
        private Page<T> page;
        private String error;
        private Throwable throwable;
    
    
        public int getCode() {
            return code;
        }
    
        public ResultVO<T> setCode(int code) {
            this.code = code;
            //返回自身就可以形成链式操作
            return this;
        }
    
        public T getData() {
            return data;
        }
    
        public ResultVO<T> setData(T data) {
            this.data = data;
            return this;
        }
    
        public Page<T> getPage() {
            return page;
        }
    
        public ResultVO<T> setPage(Page page) {
            this.page = page;
            return this;
        }
    
        public String getError() {
            return error;
        }
    
        public ResultVO<T> setError(String error) {
            this.error = error;
            return this;
        }
    
        public Throwable getThrowable() {
            return throwable;
    
        }
    
        public ResultVO<T> setThrowable(Throwable throwable) {
            this.throwable = throwable;
            return this;
        }
    }

    Controller层:

     @RequestMapping(value = "/all", method = RequestMethod.GET)
        public ResultVO selectAll() {
           // ResultVO restVO = new ResultVO<>();
            ResultVO restVO = new ResultVO<>();
            try {
                restVO.setCode(200);
                restVO.setData(service.selectAll());
                return restVO;
            } catch (DatabaseException e) {
                /*不使用链式,可以精确的定位的错误信息。
                * */
               restVO.setCode(205);
               restVO.setError("这是一个错误");
               return restVO;
            } catch (Exception e) {
                /*链式操作*/
                /*缺点: 1、调式的时候不凡便
                 *  2、找错误不能精确的定位到错误的位置
                 *  3、链式的操作写起来简单了,但vo层再起来又变麻烦了,所以事情都有两面性的,
                 *  只是牺牲一面,成全另别面
                 * */
                restVO.setCode(225).setError("这是一个错误");
                return restVO;
            }
    
        }
  • 相关阅读:
    TC配置文件WCMD.INI详解,只能在ini重修改的配置
    Source Insight中的多行注释
    ACE_Timer_Heap_T定时器
    什么是代理服务器
    太阳能传感器目前主要故障问题解决方案
    source insight中文显示和处理
    C#3.0新特性小结(2)
    .NET中事务操作小结(1)
    常用的正则表达式收藏版
    几种流行的Ajax开发框架比较
  • 原文地址:https://www.cnblogs.com/YouAreABug/p/10071183.html
Copyright © 2011-2022 走看看