maven项目pom.xml引入
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
什么是Pageable:
Page是Spring Data提供的一个接口,该接口表示一部分数据的集合以及其相关的下一部分数据、数据总数等相关信息,通过该接口,我们可以得到数据的总体信息(数据总数、总页数...)以及当前数据的信息(当前数据的集合、当前页数等)
代码部分:
坑:这两句代码要写一起中间不能间隔其他代码
Pageable pageable = new PageRequest(page, 10, sort);
Page<Student> articleDatas = studentRepository.findAll(pageable);
控制层测试代码
@RequestMapping("/showPageStudent")
public String showPageStudent(Model model, int page, int totalPage) {
System.out.println(totalPage);
if (page == -1) {
page++;
}
if (page == totalPage) {
page--;
}
// 指定排序参数对象:根据id,进行降序查询
Sort sort = new Sort(Direction.DESC, "id");
/**
* 封装分页实体 参数一:pageIndex表示当前查询的第几页(默认从0开始,0表示第一页) 参数二:表示每页展示多少数据,现在设置每页展示2条数据
* 参数三:封装排序对象,根据该对象的参数指定根据id降序查询
*/
Pageable pageable = new PageRequest(page, 10, sort);
Page<Student> articleDatas = studentRepository.findAll(pageable);
System.out.println("查询总页数:" + articleDatas.getTotalPages());
System.out.println("查询总记录数:" + articleDatas.getTotalElements());
System.out.println("查询当前第几页:" + articleDatas.getNumber() + 1);
System.out.println("查询当前页面的记录数:" + articleDatas.getNumberOfElements());
// 查询出的结果数据集合
List<Student> articles = articleDatas.getContent();
System.out.println("查询当前页面的集合:" + articles);
model.addAttribute("list", articles);
model.addAttribute("TotalPages", articleDatas.getTotalPages());
model.addAttribute("TotalElements", articleDatas.getTotalElements());
model.addAttribute("Numbe", articleDatas.getNumber() + 1);
model.addAttribute("NumberOfElements", articleDatas.getNumberOfElements());
model.addAttribute("temp", page);
return "showStudent";
}
网页部分
网页使用了thymeleaf模板!!!
showStudent.html
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="htmlhead">
<meta charset="utf-8"></meta>
</head>
<body>
<table border="1" align="center"
style="font-size: 20px; align-content: center;">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>班级</th>
<th>年龄</th>
<th>操作</th>
</tr>
<tr th:each="student:${list}">
<td th:text="${student.id}"></td>
<td th:text="${student.name}"></td>
<td th:text="${student.gender}"></td>
<td th:text="${student.grade}"></td>
<td th:text="${student.age}"></td>
<td><a href="#" th:href="@{/deleteStudent(id=${student.id})}">删除</a>
<a href="#" th:href="@{/findByID(id=${student.id})}">更新</a></td>
</tr>
</thead>
</table>
<div align="center">
<a th:href="@{/showPageStudent(page=0,totalPage=${TotalPages})}">首页</a>
<a
th:href="@{/showPageStudent(page=${temp-1},totalPage=${TotalPages})}">上一页</a>
<a
th:href="@{/showPageStudent(page=${temp+1},totalPage=${TotalPages})}">下一页</a>
<a th:href="@{/showPageStudent(page=${TotalPages-1})}">末页</a>
</div>
</body>
</html>