单表多条件
第一种方式
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;
}
}