写一个不使用PageInfo的分页查询teacher表
时间: 2024-03-21 10:42:38 浏览: 51
好的,以下是一个不使用 PageInfo 的分页查询 teacher 表的示例:
```
public List<Teacher> findTeachersByTname(int pageNum, int pageSize, String tname) {
int start = (pageNum - 1) * pageSize;
List<Teacher> teachers = teacherMapper.findTeachersByTname(start, pageSize, tname);
// 计算总记录数
long total = teacherMapper.countTeachersByTname(tname);
// 计算总页数
int pages = (int) Math.ceil((double) total / pageSize);
// 计算前一页和后一页
int prevPage = pageNum > 1 ? pageNum - 1 : 1;
int nextPage = pageNum < pages ? pageNum + 1 : pages;
// 是否有前一页和后一页
boolean hasPrevPage = pageNum > 1;
boolean hasNextPage = pageNum < pages;
// 封装分页信息
Map<String, Object> pageInfo = new HashMap<>();
pageInfo.put("list", teachers);
pageInfo.put("pageNum", pageNum);
pageInfo.put("pageSize", pageSize);
pageInfo.put("total", total);
pageInfo.put("pages", pages);
pageInfo.put("prevPage", prevPage);
pageInfo.put("nextPage", nextPage);
pageInfo.put("hasPrevPage", hasPrevPage);
pageInfo.put("hasNextPage", hasNextPage);
return pageInfo;
}
```
这里,我们手动计算出分页查询的起始位置 start,然后通过调用 teacherMapper.findTeachersByTname() 方法进行查询。接着,我们计算出总记录数 total,总页数 pages,前一页页码 prevPage 和后一页页码 nextPage,以及是否有前一页和后一页的标识 hasPrevPage 和 hasNextPage。最后,我们将这些分页信息封装到一个 Map 对象中,并将查询结果列表放入 Map 中的 "list" 属性中,返回给调用方。
需要注意的是,这里我们假设了 TeacherMapper 中有一个方法 countTeachersByTname(),用于查询满足条件的总记录数。如果您的 Mapper 中没有这个方法,可以自行实现或者使用其他方式获取总记录数。另外,由于这里没有使用 PageInfo,所以在调用方需要手动从返回值中获取分页信息。
阅读全文