PageHelper分页

经过试验,存在问题!!!

PageHelper单表查询分页

1
2
3
4
5
public PageInfo findByPage(PageVO page) {
PageHelper.startPage(page.getPageNum(), page.getPageSize());
List<Project> all = projectMapper.findByPage();//分页SQL方法
return new PageInfo<>(all);//返回
}

多表关联查询分页

多表关联查询分页可能会存在分页数量不正确的情况,通过如下方式解决
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public PageInfo findAll(PageVO page) {
PageHelper.startPage(page.getPageNum(), page.getPageSize()).doCount(
() -> projectMapper.doCount() //自定义查询总数量方法,这里的返回值要求是long
);
List<Project> all = projectMapper.findAll();
return new PageInfo<>(all);
}

public PageInfo findByPage(PageVO page) {
PageHelper.startPage(page.getPageNum(), page.getPageSize()).doCount(new ISelect() {
@Override
public void doSelect() {
logn count = projectMapper.doCount();//自定义查询总数量方法,这里的返回值要求是long
}
});
List<Project> all = projectMapper.findByPage();
return new PageInfo<>(all);
}
projectMapper
1
2
@Select("SELECT COUNT(id) FROM `project`")
long doCount();