mybatisPlus·入门·贰

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<>();

3.2 调用queryWrapper 里的方法

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值