使用mybatis-plus 条件分页

单表多条件

第一种方式

service接口

public List<CookBook> test(CookBook cookBook, Integer pageNum, Integer pageSize);

 

service实现类

    @Override
    public List<CookBook> test(CookBook cookBook, Integer pageNum, Integer pageSize) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.like("recommend_id", cookBook.getRecommendId());
        wrapper.orderByDesc("create_time");
        Page<CookBook> iPage = new Page<CookBook>(pageNum, pageSize);
        IPage<CookBook> cookBookIPage = cookBookMapper.selectPage(iPage, wrapper);
        List<CookBook> list = cookBookIPage.getRecords();
        return list;
    }

 

controller

  @GetMapping("test")
    public AjaxResult test(CookBook cookBook, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {

        return AjaxResult.success(cookBookService.test(cookBook, pageNum, pageSize));
    }

 

第二种方式

mapper接口

 

   @Select("select * from shipping_address")
    IPage<ShippingAddress> selectAddressList(Page<ShippingAddress> page, ShippingAddress shippingAddress);

 

service接口

IPage<ShippingAddress> selectAddressList(ShippingAddress shippingAddress, Integer pageNum, Integer pageSize);

 

serevice实现层

    @Override
    public IPage<ShippingAddress> selectAddressList(ShippingAddress shippingAddress, Integer pageNum, Integer pageSize) {
        Page<ShippingAddress> iPage = new Page<ShippingAddress>(pageNum, pageSize);
        IPage<ShippingAddress> memberList = shippingAddressMapper.selectAddressList(iPage, shippingAddress);
        return memberList;
    }

 

controller

   @GetMapping("list")
    public TableDataInfo addrList(ShippingAddress address, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
        IPage<ShippingAddress> memberIPage = shippingAddressService.selectAddressList(address, pageNum, pageSize);
        List<ShippingAddress> records = memberIPage.getRecords();
        return getDataTable(records);
    }

还有多种方法,自个慢慢玩哈!

 

多表格式化数据

service接口

 public SelectByCookBookData query(CookBook cookBook, Integer pageNum, Integer pageSize);

 

service实现层

    @Override
    public SelectByCookBookData query(CookBook cookBook, Integer pageNum, Integer pageSize) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.like("recommend_id", cookBook.getRecommendId());
        wrapper.orderByDesc("create_time");
        Page<CookBook> iPage = new Page<CookBook>(pageNum, pageSize);
        IPage<CookBook> cookBookIPage = cookBookMapper.selectPage(iPage, wrapper);
        List<CookBook> list = cookBookIPage.getRecords();

//这里使用的是迭代器拿到id去查询另一个表的, 你也可以使用循环什么的都可以 Iterator
<CookBook> it = list.iterator(); while (it.hasNext()) { CookBook nowData = it.next(); Long marketId = nowData.getMarketId(); //查询表一 R rMarket = marketService.queryMarketById(marketId); nowData.setMarKetList(rMarket);
//查询表二
//查询表三
......... } SelectByCookBookData cookBookData
= new SelectByCookBookData(); cookBookData.setCount(cookBookIPage.getTotal()); cookBookData.setCurrentIndex(cookBookIPage.getCurrent()); cookBookData.setSize(cookBookIPage.getSize()); cookBookData.setPageCount(cookBookIPage.getPages()); cookBookData.setCookBookList(list); return cookBookData; }

 

controller

    @GetMapping("query")
    public AjaxResult query(QueryCookBookByIdParam bookByIdParam) {return AjaxResult.success(cookBookService.query(bookByIdParam, bookByIdParam.getPageNum(), bookByIdParam.getPageSize()));
    }

 

其他类代码如下:

QueryCookBookByIdParam类 继承与CookBook类 因为controller需要根据cookBook类来传对应的变量值。


SelectByCookBookData类

 

 注意:mybatis-plus提供的分页插件需要添加如下配置类

mybatis-plus配置类

@Configuration
public class MyBatisPlusConfig {

@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor page = new PaginationInterceptor();
//设置方言类型
page.setDialectType("mysql");
return page;
}
}

 

有问题的小伙伴下方留言哦

 

 

posted @ 2020-11-25 21:52  安详的苦丁茶  阅读(357)  评论(1编辑  收藏  举报