单表多条件

第一种方式

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 条件分页_ide


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

mybatis-plus配置类


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