文章目录
- 1 简单CRUD接口
- 1.1 根据id查询({id传参)
- 1.1.1 接口类直接继承IService
- 1.1.2 controller直接调用方法
- 1.2 根据ids查询
- 1.3 新增
- 1.3.1 接口类直接继承IService
- 1.3.2 controller直接调用方法
- 1.4 修改状态(Query传参)
- 1.4.1 接口类直接继承IService
- 1.4.2 controller直接调用方法
- 1.5 根据id删除商品
- 1.5.1 接口类直接继承IService
- 1.5.2 controller直接调用方法
- 2 分页查询
- 2.1 不带条件的分页查询
- 2.1.1 拦截SQL语句,目的是拼接limit条件
- 2.1.2 接口类直接继承IService
- 2.1.3 controller直接调用方法
- 2.2 带条件的分页查询
- 2.2.1 拦截SQL语句,目的是拼接limit条件
- 2.2.2 接口类直接继承IService
- 2.2.3 controller直接调用方法
- 3 构造查询条件
- 3.1 new LambdaQueryWrapper<>();
- 3.2 调用queryWrapper 里的方法
1 简单CRUD接口
1.1 根据id查询({id传参)
1.1.1 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
1.1.2 controller直接调用方法
/*** 根据id查询商品** @param id* @return*/@GetMapping("/{id}")public Item getById(@PathVariable Long id) {log.info("商品id为:{}", id);Item item = itemService.getById(id);return item;}
1.2 根据ids查询
直接调用
itemService.getBaseMapper().selectBatchIds(ids)
方法
@GetMapping("/ids")public List<Item> getByIds(@RequestParam List<Long> ids) {log.info("商品ids为:{}", ids);List<Item> itemList = itemService.getBaseMapper().selectBatchIds(ids);return itemList;}
1.3 新增
1.3.1 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
1.3.2 controller直接调用方法
/*** 新增商品** @param item*/@PostMappingpublic void saveItem(@RequestBody Item item) {log.info("商品参数{}:", item);itemService.save(item);}
1.4 修改状态(Query传参)
1.4.1 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
1.4.2 controller直接调用方法
/*** 商品上架、下架* @param item*/@PutMapping("/status/{id}/{status}")public void updateStatus(Item item) {log.info("修改商品状态:{}", item);itemService.updateById(item);}
1.5 根据id删除商品
1.5.1 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
1.5.2 controller直接调用方法
/*** 根据 id删除商品* @param id*/@DeleteMapping("/{id}")public void delateById(@PathVariable Long id){log.info("删除商品id:{}", id);itemService.removeById(id);}
2 分页查询
2.1 不带条件的分页查询
2.1.1 拦截SQL语句,目的是拼接limit条件
/*** mp分页拦截*/
@Configuration
public class MpConfig {@Beanpublic MybatisPlusInterceptor mpInterceptor(){//1 定义mp拦截器,创建MybatisPlusInterceptor拦截器对象MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();//2 添加具体的拦截器、添加分页拦截器mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mpInterceptor;}
}
2.1.2 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
2.1.3 controller直接调用方法
/*** 分页查询商品** @param page* @param size* @return*/@GetMapping("/list")public PageDTO<Item> list2(int page, int size) {log.info("页数,大小参数{},{}", page, size);IPage<Item> iPage = new Page<>(page, size);//构造分页构造器,有page、sizeIPage<Item> pageInfo = itemService.page(iPage);return new PageDTO<Item>(pageInfo.getTotal(),pageInfo.getRecords());}
2.2 带条件的分页查询
2.2.1 拦截SQL语句,目的是拼接limit条件
/*** mp分页拦截*/
@Configuration
public class MpConfig {@Beanpublic MybatisPlusInterceptor mpInterceptor(){//1 定义mp拦截器,创建MybatisPlusInterceptor拦截器对象MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();//2 添加具体的拦截器、添加分页拦截器mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mpInterceptor;}
}
2.2.2 接口类直接继承IService
public interface IItemService extends IService<Item> {
}
2.2.3 controller直接调用方法
/*** 分页查询商品** @param page* @param size* @return*/@GetMapping("/list")public PageDTO<Item> list(int page, int size) {log.info("页数,大小参数{},{}", page, size);IPage<Item> pageInfo = new Page<>(page, size);//构造分页构造器,有page、sizeLambdaQueryWrapper<Item> queryWrapper = new LambdaQueryWrapper<>();//构造条件构造器,此处前端请求page、sizequeryWrapper.orderByDesc(Item::getCreateTime);//添加排序条件,按更新时间排序itemService.page(pageInfo, queryWrapper);PageDTO<Item> pageDTO = new PageDTO<>();//构造前端返回值对象pageDTO.setList(pageInfo.getRecords());//放入数据pageDTO.setTotal(pageInfo.getTotal());//放入总大小return pageDTO;}
3 构造查询条件
3.1 new LambdaQueryWrapper<>();
LambdaQueryWrapper<Item> queryWrapper = new LambdaQueryWrapper<>();