SpringBoot表现层消息一致处理

我们以前的表现层开发的模样:

http://t.csdn.cn/xitP8

如今表现层开发的模样:

    返回null的两种情况 ①id不存在,返回null

                                    ② 查询过程中抛异常,catch中返回null

    为了避免第二种情况所造成的null,我们可以创建一个R类

创建一个R类(这个类名随便自己定义)


import lombok.Data;

@Data //get+set+toString+hashcode+equals  但是没有构造方法
public class R {
//    这个类的作用
//    前后端进行数据格式的统一,也称为 前后端数据协议

    private Boolean flag;
    private Object data;

    public R(){

    }
    public R(Boolean flag){
        this.flag = flag;
     }

    public R(Boolean flag,Object data){
        this.flag = flag;
        this.data = data;
    }

}

package com.company.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.company.controller.utils.R;
import com.company.domain.Book;
import com.company.service.IBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
//表现层开发:基于Restful进行开发
//使用REST风格对资源进行访问成为Restful
@RestController //这个注释的作用就是@Controller+@ResponseBody
@RequestMapping("/books")  //描述模块的名称通常使用复数
//这两个注释在类上写了之后,相同的部分下面就不用写了
public class BookController2 {
    /*
     *       http://localhost/books      查询全部用户信息  Get 查询
     *     * http://localhost/books/id   查询指定用户信息  Get 查询
     *     * http://localhost/books      添加某个用户信息  Post (新增、保存)
     *     * http://localhost/books      修改用户用户信息  Put (修改、更新)
     *     * http://localhost/books/id   删除某个用户信息  Delete
     * */


    //    我们要调用业务层,那就提前注入业务层
    @Autowired
    private IBookService iBookService;


//    return是return在页面上

    //请求方式是get请求
    @GetMapping
    public R getAll(){
        R r = new R(true,iBookService.list());
        return r;  //在快速开发业务层中,list()方法表示得到全部的数据
//        这个最终会展示在页面上
    }

    //    post提交   保存一个Book对象(添加一个对象)
    @PostMapping
    public R save(@RequestBody Book book){ //@RequestBody请求体参数  都是传JSON数据过来
        //    下面的对象 是为了前后端进行数据格式统一,也称为前后端数据协议
        R r = new R(iBookService.save(book));
        return r;
    }

    //    put提交    修改一个Book对象
    @PutMapping
    public  R update(@RequestBody Book book){ //@RequestBody 请求体参数 都是传JSON数据过来,接受JSON数据
        R r = new R(iBookService.updateById(book));
        return r;
    }
    //    post请求    保存一个Book对象
    @DeleteMapping("{id}")  //上面的id(这个地方不加/也可以,会自动加)值最终会赋值给Integer id中的id
    public  R delete(@PathVariable Integer id){  //@PathVariable 这个注解表示形参注解,绑定路径参数与处理器方法形参减的关系;如果不写这个的话,获取不到网页传来的数据
        R r = new R(iBookService.removeById(id));
        return r;
    }

    //    查询单个
    @GetMapping("{id}")   //此id(这个地方不加/也可以,会自动加)  最终恢会赋值给Integer id中的id
    public R getById( @PathVariable Integer id){//@PathVariable 这个注解表示形参注解,绑定路径参数与处理器方法形参减的关系;如果不写这个的话,获取不到网页传来的数据
        R r = new R(true,iBookService.getById(id)); //如果id没有的话,返回null也是可以的
        return r;
    }

    //查询分页
    @GetMapping("{currentPage}/{pageSize}")
    public R getPage(@PathVariable int currentPage, @PathVariable int pageSize){
        R r = new R(true,iBookService.getPage(currentPage,pageSize));
        return r;

    }



}

部分运行结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱布朗熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值