Spring Boot运用PageHelper进行分页
Spring Boot运用PageHelper进行分页
最近在做毕设设计对SpringBoot中的PageHelper进行分页有一些了解
pom文件引入依赖
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
我这里使用的1.2.4版本的,也可以更换版本。
配置yml文件中PageHelper的属性
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
UserMapper文件
声明一个方法:
List<User> findWithBLOBsByPages();
UserService文件
@Autowired
private UserMapper userMapper;
public PageInfo<User> getUserList(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> list = userMapper.findWithBLOBsByPages();
//用PageInfo对结果进行包装
PageInfo<User> page = new PageInfo<User>(list);
return page;
}
pageNum表示所分的页数,pageSize表示一页中所展示的数据数量。
UserController文件
@GetMapping("/users")
public String list(User user,Model model,
@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum){
PageHelper.startPage(pageNum,5);
List<User> users = userService.getUsers(user);
PageInfo<User> pageInfo = new PageInfo<User>(users);
model.addAttribute("pageInfo",pageInfo);
}
查询语句必须紧跟在PageHelper.startPage(pageNum,5);语句之后,不然分页会有问题。
其中的pageNum表示你所分的页数,5为一页上显示的数据数量。
Html页面
<p style="text-align: center;margin-top: 20px">当前 <span th:text="${pageInfo.pageNum}"></span>页,总<span th:text="${pageInfo.pages}"></span> 页,共<span th:text="${pageInfo.total}"></span> 条记录</p>
<div class="page" style="text-align: center;margin-top: 20px">
<a style="color: black" th:href="@{/users}">首页</a>
<a style="color: black" th:href="@{/users(pageNum=${pageInfo.hasPreviousPage}?${pageInfo.prePage}:1)}">上一页</a>
<a style="color: black" th:href="@{/users(pageNum=${pageInfo.hasNextPage}?${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
<a style="color: black" th:href="@{/users(pageNum=${pageInfo.pages})}">尾页</a>
</div>
下面是简单实现的分页效果:
也可以自己去写更好看的分页效果,在这里就不去过多的描述了。
这样一个简单的运用PageHelper的分页就完成了。