05微服务-商品-增删改查与搜索分页***

商品微服务-品牌增删改查

创建商品微服务,实现对品牌表的增删改查功能。具体包括

  • (1)查询全部列表数据
  • (2)根据ID查询实体数据
  • (3)增加
  • (4)修改
  • (5)删除
  • (6)条件查询
  • (7)分页查询
  • (8)分页+条件查询
  • (9)公共异常处理
    在这里插入图片描述
    在这里插入图片描述

微服务商品的增删改查

  • (1)TestGoodService
  • (2)GoodService,GoodServiceImpl
  • (3)GoodDao
  • (4)GoodController
  • (4)postman

TestGoodService


@SpringBootTest
public class TestBrandService {
    @Autowired
    BrandService brandService;

    @Test
    public void test01() {

        //查所有
//        List<Brand> list = brandService.findAll();
//        System.out.println(list.size());
        //查一条
//        Brand brand = brandService.findById(7817);
//        System.out.println(brand.getName());
        //删除
        brandService.deleteById(7817);

    }

    @Test
    public void test02() {
        //添加一条
        Brand brand = new Brand();
        brand.setName("JZG牌");
        brand.setId(7817);
        //brandService.saveBrand(brand);
        brandService.updateBrand(brand);
    }

    //搜索,就是在一个高级搜索页面的一个表单里面输入搜索信息
    @Test
    public void test03() {

        Brand brand = new Brand(); //null+""  "null"
        //brand.setId(7817);//and
        brand.setName("谷");
        //按条件查询
        List<Brand> list = brandService.findList(brand);
        for (Brand b : list) {
            System.out.println(b.getName());
        }

    }
    //分页,如果搜索的记录是多条的话,我们需要对结果进行分页
    @Test
    public void test04() {

        Brand brand = new Brand(); //null+""  "null"

        brand.setName("T");
        //按条件查询
        PageInfo<Brand> pageInfo= brandService.findPage(brand,2,10);
        //数据库中带T的数据有30条
        for (Brand b : pageInfo.getList()) {
            System.out.println(b.getName());
        }

    }
}

BrandService,BrandServiceImpl

public interface BrandService {
    List<Brand> findAll();

    Brand findById(int id);

    void deleteById(int id);

    void saveBrand(Brand brand);

    void updateBrand(Brand brand);

    List<Brand> findList(Brand brand);

    PageInfo<Brand> findPage(Brand brand, int curr, int pageSize);
}

@Service
public class BrandServiceImpl implements BrandService {
    @Autowired
    BrandDao brandDao;
    @Override
    public List<Brand> findAll() {
        return brandDao.selectAll();
    }

    @Override
    public Brand findById(int id) {
        return brandDao.selectByPrimaryKey(id);
    }

    @Override
    public void deleteById(int id) {
        brandDao.deleteByPrimaryKey(id);
    }

    @Override
    public void saveBrand(Brand brand) {
        brandDao.insert(brand);
    }

    @Override
    public void updateBrand(Brand brand) {

        brandDao.updateByPrimaryKey(brand);
    }

    @Override
    public List<Brand> findList(Brand brand) {//brand看表单输入的对象

        Example example = getExample(brand);
        return brandDao.selectByExample(example);
    }
    private Example getExample(Brand brand){
        //Example 表示高级搜索的条件
        Example example = new Example(Brand.class);//参1 对应 tb_brand
        //高级搜索页面输入的值作为条件 where

        Example.Criteria criteria = example.createCriteria();
        if (brand != null) {
            //如果用户在高级搜索表单里面有输入值 ,表示用户在按该条件查找
            //名称
            if (!StringUtils.isEmpty(brand.getName())) {
                criteria.andLike("name", "%" + brand.getName() + "%");
            }

            //图片
            if (!StringUtils.isEmpty(brand.getImage() )) {
                criteria.andLike("image", "%" + brand.getImage() + "%");
            }
            //字母
            if (!StringUtils.isEmpty(brand.getLetter() )) {
                //and letter like '%A%'
                criteria.andLike("letter", "%" + brand.getLetter() + "%");
            }
            //id
            if (!StringUtils.isEmpty(brand.getId() )) { //null +"" => "null"
                criteria.andEqualTo("id", brand.getId());
            }
            //seq
            if (!StringUtils.isEmpty(brand.getSeq())) {
                criteria.andEqualTo("seq", brand.getSeq());
            }
        }
        return example;
    }

    @Override
    public PageInfo<Brand> findPage(Brand brand, int curr, int pageSize) {
        //分页,使用了mybatis的分页插件
        PageHelper.startPage(curr,pageSize); //limit curr,pageSize
        //查询
        Example example = getExample(brand);
        List<Brand> list = brandDao.selectByExample(example);
        PageInfo<Brand> pi = new PageInfo<>(list);
        return pi;
    }
}

  • if (!StringUtils.isEmpty(brand.getSeq())) 正确
  • if (!StringUtils.isEmpty(brand.getSeq()+"")) 错误得出null+"" 变成 “null”

BrandDao

public interface BrandDao extends Mapper<Brand> {
}

  • Mapper要导入的不是springmybatis的,而是tkmybatis
  • Mapper里面包含常用的方法,添加,修改,删除,查询等

BrandController

@RestController
@RequestMapping("/brands")
@Slf4j
public class BrandController {
    @Autowired
    BrandService brandService;

    //@RequestMapping(path = "",method = {RequestMethod.GET})
    @GetMapping //是上面注解的简化
    public Object getAll() {
        
        List<Brand> list = brandService.findAll();

        return new Result<Brand>(true, StatusCode.OK, "查询成功", list);
    }

    @GetMapping(path = "/{id}")
    public Object getOne(@PathVariable Integer id) {

        Brand brand = brandService.findById(id);

        return new Result<Brand>(true, StatusCode.OK, "查询成功", brand);
    }

    @DeleteMapping(path = "/{id}")
    public Object deleteOne(@PathVariable Integer id) {

        brandService.deleteById(id);

        return new Result<Brand>(true, StatusCode.OK, "删除成功");
    }
    @PostMapping
    public Object addOne(@RequestBody  Brand brand) {//@RequestBody将接收到json中的数据存到brand对象

        brandService.saveBrand(brand);

        return new Result<Brand>(true, StatusCode.OK, "添加成功");
    }
    @PutMapping
    public Object updateOne(@RequestBody  Brand brand) {

        brandService.updateBrand(brand);

        return new Result<Brand>(true, StatusCode.OK, "修改成功");
    }

    @GetMapping(path="/search")
    public Object searchList(@RequestBody  Brand brand) {

        List<Brand> list = brandService.findList(brand);

        return new Result<Brand>(true, StatusCode.OK, "查询成功",list);
    }

    @GetMapping(path="/search/{curr}/{pageSize}")
    public Object searchPage(@RequestBody  Brand brand,@PathVariable  int curr,@PathVariable  int pageSize) {

        //按条件查询
        PageInfo<Brand> pageInfo= brandService.findPage(brand,curr,pageSize);

        return new Result<Brand>(true, StatusCode.OK, "查询成功",pageInfo);
    }
}
  • @GetMapping 是@RequestMapping(path = "",method = {RequestMethod.GET})简化
  • springmvc支持restful的地址命名 @DeleteMapping @PutMapping等
  • url可以带多个简单的
    @GetMapping(path="/search/{curr}/{pageSize}")
    public Object searchPage(@RequestBody  Brand brand,@PathVariable  int curr,@PathVariable  int pageSize)

测试

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翁老师的教学团队

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

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

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

打赏作者

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

抵扣说明:

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

余额充值