复盘318(微服务的增删改查)

昨天就写了个微服务的增删改查
在这里插入图片描述
controller层

package com.changgou.goods.controller;

import com.changgou.common.entity.PageResult;
import com.changgou.common.entity.Result;
import com.changgou.common.entity.StatusCode;
import com.changgou.goods.pojo.Brand;
import com.changgou.goods.service.BrandService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController//@ResponseBody(java对象->json响应数据)+@Controller(表示表现层)
@RequestMapping("/brand")//映射请求路径
public class BrandController {

    @Autowired
    private BrandService brandService;

    //查询全部数据
    @GetMapping
    public Result findAll(){
        List<Brand> brandList = brandService.findAll();
        return new Result(true, StatusCode.OK,"查询成功",brandList);
    }
    //根据id查询数据
    @GetMapping("/{id}")
    public Result findById(@PathVariable Integer id){//用于路径上接收参数
        Brand brand = brandService.findById(id);
        return new Result(true,StatusCode.OK,"查询成功",brand);
    }
    //新增品牌
    @PostMapping("/add")
    public Result add(@RequestBody Brand brand){//前端传来的json->java对象
        brandService.add(brand);
        return new Result(true,StatusCode.OK,"添加成功");
    }
    //根据id修改品牌
    @PutMapping("/{id}")
    public Result update(@RequestBody Brand brand,@PathVariable Integer id){
        brand.setId(id);
        brandService.update(brand);
        return new Result(true,StatusCode.OK,"修改成功");
    }
    //根据id删除品牌
    @DeleteMapping({"/{id}"})
    public Result delete(@PathVariable Integer id){
        brandService.delete(id);
        return new Result(true,StatusCode.OK,"删除成功");
    }
    //条件搜索+分页查询
    @GetMapping("/search/{page}/{size}")
    public Result search(@PathVariable Integer page, @PathVariable Integer size, @RequestParam Map searchMap){//指定参数赋值给形参
        Page<Brand> pageList = brandService.search(searchMap,page,size);//page对象接收参数
        PageResult<Brand> pageResult = new PageResult<>(pageList.getTotal(), pageList.getResult());//pageResult封装对象
        return new Result(true,StatusCode.OK,"查询成功",pageResult);//返回前端
    }
}

service层

package com.changgou.goods.service;

import com.changgou.goods.pojo.Brand;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface BrandService {
    Brand findById(Integer id);

    List<Brand> findAll();

    void add(Brand brand);

    void update(Brand brand);

    void delete(Integer id);

    Page<Brand> search(Map searchMap, Integer page, Integer size);
}

package com.changgou.goods.service.impl;

import com.changgou.goods.dao.BrandMapper;
import com.changgou.goods.pojo.Brand;
import com.changgou.goods.service.BrandService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import java.util.List;
import java.util.Map;

@Service//表示业务层
public class BrandServiceImpl implements BrandService {

    @Autowired
    private BrandMapper brandMapper;

    @Override
    public Brand findById(Integer id) {
        return brandMapper.selectByPrimaryKey(id);
    }

    @Override
    public List<Brand> findAll() {
        return brandMapper.selectAll();
    }

    @Override
    public void add(Brand brand) {
//        brandMapper.insert(brand)
        brandMapper.insertSelective(brand);//这种是要做非空判断的
    }

    @Override
    public void update(Brand brand) {
        brandMapper.updateByPrimaryKeySelective(brand);
    }

    @Override
    public void delete(Integer id) {
        brandMapper.deleteByPrimaryKey(id);
    }

    @Override
    public Page<Brand> search(Map searchMap, Integer page, Integer size) {
        PageHelper.startPage(page,size);//分页助手
        Example example = new Example(Brand.class);用于条件查询
        Example.Criteria criteria = example.createCriteria();
        if(searchMap!=null){
            //品牌名称
            if(searchMap.get("name")!=null && !"".equals(searchMap.get("name"))){//名称不为空和字符串不为空
                criteria.andLike("name","%"+searchMap.get("name")+"%");//name,%HTC%
            }//模糊查询
            //品牌首字母
            if(searchMap.get("letter")!=null && !"".equals(searchMap.get("letter"))){
                criteria.andEqualTo("letter",searchMap.get("letter"));//letter,H
            }//精准查询
        }
        return (Page<Brand>) brandMapper.selectByExample(example);//返回封装对象
    }
}

dao层

package com.changgou.goods.dao;

import com.changgou.goods.pojo.Brand;
import tk.mybatis.mapper.common.Mapper;

public interface BrandMapper extends Mapper<Brand> {
}

统一异常处理类

package com.changgou.goods.handler;

import com.changgou.common.entity.Result;
import com.changgou.common.entity.StatusCode;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 统一异常处理类
 */
@ControllerAdvice
public class BaseExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Result error(Exception e){
        e.printStackTrace();
        return new Result(false, StatusCode.ERROR,e.getMessage());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值