不使用 PageHelper 插件修改代码使用了 PageHelper 插件
时间: 2024-03-21 16:42:35 浏览: 65
好的,那么这里我给出不使用 PageHelper 插件的代码:
```
public PageInfo<Teacher> findTeachersByTname(int pageNum, int pageSize, String tname) {
int start = (pageNum - 1) * pageSize;
List<Teacher> teachers = teacherMapper.findTeachersByTname(start, pageSize, tname);
PageInfo<Teacher> pageInfo = new PageInfo<>(teachers);
long total = teacherMapper.countTeachersByTname(tname);
pageInfo.setTotal(total);
pageInfo.setPageNum(pageNum);
pageInfo.setPageSize(pageSize);
int pages = (int) Math.ceil((double) total / pageSize);
pageInfo.setPages(pages);
pageInfo.setNavigatePages(Math.min(pages, 10));
pageInfo.setNavigatepageNums(IntStream.rangeClosed(1, pages).toArray());
return pageInfo;
}
```
这里,我们手动计算出分页查询的起始位置 start,然后通过调用 teacherMapper.findTeachersByTname() 方法进行查询。接着,我们创建一个 PageInfo 对象,并将查询结果设置进去。然后,我们手动设置 PageInfo 中的总记录数、当前页码、每页记录数、总页数、导航页码数和导航页码数组。最后,我们将 PageInfo 对象返回。
需要注意的是,这里我们假设了 TeacherMapper 中有一个方法 countTeachersByTname(),用于查询满足条件的总记录数。如果您的 Mapper 中没有这个方法,可以自行实现或者使用其他方式获取总记录数。
阅读全文