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)

测试

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/110471023
今日推荐