java随笔(3)controller层的基本常识

(1)Result.java              最终数据类

private Integer code;//状态码,标记数据库操作是否成功
private Object object;//对象,返回给前端的主体数据
private String msg;//消息,返回给前端的提示信息

(2)Code.java               静态常量类

public static final Integer SAVE_OK=10011;//保存成功
public static final Integer DELETE_OK=10021;//删除成功
public static final Integer UPDATE_OK=10031;//更新成功
public static final Integer QUERY_OK=10041;//查询成功

public static final Integer SAVE_ERRO=10010;//保存失败
public static final Integer DELETE_ERRO=10020;//删除失败
public static final Integer UPDATE_ERRO=10030;//更新失败
public static final Integer QUERY_ERRO=10040;//查询失败

(3)ObjectApi.java        中转控制类

@Controller //类注解,解析为controller层逻辑代码,负责前后端数据交互
@CrossOrigin //类注解,解决跨域问题
@RequestMapping //可以是类注解,也可以是方法注解,主要负责映射请求参数对应的具体路径
(
        value = "/getMyBook2",//请求路径
        produces = {"application/json;charset=UTF-8"} 
                                               //编码过滤为json类型,utf-8格式
)
@ResponseBody //方法注解,主要负责把处理好的数据返回给前端
@RequestParam ​​​​​​​//参数注解,解析带参请求
(
        value = "id",                  //前端的参数名称
        defaultValue = "222",          //默认参数值
        required = false                //参数可缺省
)Integer id

@RequestBody Book book        //参数注解,把 json数据 解析成 对象参数
@PathVariable Integer id        
                       //参数注解,解析路径参数,参数名称来自@RequestMapping的value属性

//后端数据封装为最终结果类,返回给前端
List<Book> bookList = bookService.getBooklist(); 
boolean flag = bookList != null; 
if(flag) 
        return new Result(Code.QUERY_OK,bookList,"查询成功"); 
else 
        return new Result(Code.QUERY_ERRO,null,"查询失败");

示例代码:

@RestController // @ResponseBody + @Controller
@RequestMapping(value = "/books",produces = {"application/json;charset=UTF-8"})
@CrossOrigin
public class BookApi {

    @Autowired
    private BookService bookService;


    @PostMapping
    public Result save(@RequestBody Book book) {
        boolean flag = bookService.save(book);
        return new Result(flag ? Code.SAVE_OK:Code.SAVE_ERRO,flag);
    }

    @PutMapping
    public Result update(@RequestBody Book book) {
        boolean flag =  bookService.update(book);
        return new Result(flag ? Code.UPDATE_OK:Code.UPDATE_ERRO,flag);
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Integer id) {
        boolean flag = bookService.delete(id);
        return new Result(flag ? Code.DELETE_OK:Code.DELETE_ERRO,flag);
    }

    @GetMapping("/{id}")
    public Result getBookById(@PathVariable Integer id) {

        Book book = bookService.getBookById(id);
        boolean flag = book != null;
        if(flag)
            return new Result(Code.QUERY_OK,book,"查询成功");
        else
            return new Result(Code.QUERY_ERRO,null,"查询失败");
    }

    @GetMapping
    public Result getBookList() {
        List<Book> bookList = bookService.getBooklist();
        boolean flag = bookList != null;
        if(flag)
            return new Result(Code.QUERY_OK,bookList,"查询成功");
        else
            return new Result(Code.QUERY_ERRO,null,"查询失败");
    }

    @GetMapping("/onShelf")
    public Result getBookOnShelf() {
        List<Book> bookList = bookService.getBookOnShelf();
        boolean flag = bookList != null;
        if(flag)
            return new Result(Code.QUERY_OK,bookList,"查询成功");
        else
            return new Result(Code.QUERY_ERRO,null,"查询失败");
    }

}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值