MyBatisPlus05_分页
MyBatisPlus05_分页
- 单表条件查询分页
- 多表条件查询分页
单表条件查询分页
配置分页插件
@Bean
public PaginationInterceptor paginationInterceptor(){return new PaginationInterceptor();
}
测试
@Test
void pageTest() {//创建 Page 对象,参数1:当前页码 参数2:每页记录数
Page<User> page = new Page<>(1,3);
//创建查询条件
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("name", "BLU");
//调用该方法后,MP会将结果封装至page中,查询条件可以设置为 null
userMapper.selectPage(page, wrapper);
//当前页
System.out.println(page.getCurrent());
//每页数据的list集合
System.out.println(page.getRecords());
//每页显示的记录数
System.out.println(page.getSize());
//总记录数
System.out.println(page.getTotal());
//总页数
System.out.println(page.getPages());
//是否有上下页
System.out.println(page.hasNext());
System.out.println(page.hasPrevious());
}
1
[User(id=1, name=BLU, age=24), User(id=2, name=BLU, age=23), User(id=3, name=BLU, age=23)]
3
8
3
true
false
多表条件查询分页
- 示例数据库 inorder
- 示例数据库 supply
- 实体类略
创建封装分页查询结果的VO类:ListInorderVo
@Data
public class ListInorderVo {//inorder的属性
private int id;
private int status;
private String remark;
//supply的属性
private String name;
private String phone;
private String address;
}
封装查询条件的类:InorderQueryMap
@Data
public class InorderQueryMap {private int status;
private String name;
private String phone;
}
在 InorderMapper 中新增一个返回类型为 Page 的方法
- 参数为 Page 和 InorderQueryMap
Page 的 泛型为 ListInorderVo
public interface InorderMapper extends BaseMapper
{ Page<ListInorderVo> findPageInorderAndSupply(Page<ListInorderVo> page, InorderQueryMap queryMap);
}
在XML中编写对应的 sql 语句
InorderService 接口方法
参数 current:当前页、limit:每页记录数、queryMap:查询条件类
public interface InorderService {
Page<ListInorderVo> getpageInorderAndSupplyCondition(long current, long limit, InorderQueryMap queryMap);
}
InorderService 实现类
@Service
public class InorderServiceImpl implements InorderService {@Autowired
private InorderMapper InorderMapper;
@Override
public Page<ListInorderVo> getpageInorderAndSupplyCondition(long current, long limit, InorderQueryMap queryMap) {
Page<ListInorderVo> pageListInorderVo = new Page<>(current, limit);
Page<ListInorderVo> page = InorderMapper.findPageInorderAndSupply(pageListInorderVo, queryMap);
return page;
}
}
测试
@Test
void contextLoads() {//创建查询条件类
InorderQueryMap inorderQueryMap = new InorderQueryMap();
inorderQueryMap.setStatus(1);
//调用service方法,返回Page对象
Page<ListInorderVo> page = InorderService.getpageInorderAndSupplyCondition(2, 2, inorderQueryMap);
//当前页
System.out.println(page.getCurrent());
//每页数据的list集合
System.out.println(page.getRecords());
//每页显示的记录数
System.out.println(page.getSize());
//总记录数
System.out.println(page.getTotal());
//总页数
System.out.println(page.getPages());
//是否有上下页
System.out.println(page.hasNext());
System.out.println(page.hasPrevious());
}
2
[ListInorderVo(id=6, status=1, remark=订单6, name=供应商b, phone=120, address=北京)]
2
3
2
false
true
还没有评论,来说两句吧...