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();

MyBatis的递归

前提说明

1.MyBatis递归主要在XML文件和Mapper接口以及对应的实体类,和其它的调用没什么太大的关系,这就只提供XML和Mapper接口以及对应的实体类文件
2.建议所有自己写的字段、表名等等都加用"``"包裹起来,因为防止出现数据库的关键字导致SQL语句错误!
3.先看实例,后面会有讲解说明的.
阅读更多