文章目录
- 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
*/
@PostMapping
public 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 {
@Bean
public 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、size
IPage<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 {
@Bean
public 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、size
LambdaQueryWrapper<Item> queryWrapper = new LambdaQueryWrapper<>();//构造条件构造器,此处前端请求page、size
queryWrapper.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<>();