SpringBoot整合PageHelper
1、在pom.xml中导入PageHelper分页插件
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2、配置分页插件得配置文件
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
3、编写代码
3.1、COntroller层
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/findAll")
public String findAll(Model model,
@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
@RequestParam(value = "limitNum",required = false,defaultValue = "2") Integer limitNum){
/*PageHelper.startPage(pageNum,limitNum);
List<User> list = userService.findAllByPage();
PageInfo<User> pageInfo=new PageInfo<User>(list);*/
PageInfo<User> pageInfo=userService.findByPage(pageNum,limitNum);
model.addAttribute("pageInfo",pageInfo);
return "index";
}
}
3.2、Service层
@Override
public PageInfo<User> findByPage(Integer pageNum,Integer limitNum){
PageHelper.startPage(pageNum,limitNum);
PageInfo<User> info=new PageInfo<User>(userMapper.findAllByPage());
return info;
}
3.3、mapper层
public interface UserMapper {
public List<User> findAllByPage();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lcb.pagehelper.mapper.UserMapper">
<select id="findAllByPage" resultType="user">
select
id,
name,
gender,
age,
address,
qq,
email
from
user
where
1=1
</select>
</mapper>
3.4、页面展示
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>thymeleaf</title>
</head>
<body>
<div>
<table>
<tr>
<th>id</th>
<th>name</th>
<th>gender</th>
<th>age</th>
<th>address</th>
<th>qq</th>
<th>email</th>
</tr>
<tr th:each="u:${pageInfo.list}">
<td th:text="${u.id}">id</td>
<td th:text="${u.name}">name</td>
<td th:text="${u.gender}">gender</td>
<td th:text="${u.age}">age</td>
<td th:text="${u.address}">address</td>
<td th:text="${u.qq}">qq</td>
<td th:text="${u.email}">email</td>
</tr>
</table>
<p>当前 <span th:text="${pageInfo.pageNum}"></span> 页,总 <span th:text="${pageInfo.pages}"></span> 页,共 <span th:text="${pageInfo.total}"></span> 条记录</p>
<a th:href="@{/user/findAll}">首页</a>
<a th:href="@{/user/findAll(pageNum=${pageInfo.hasPreviousPage}?${pageInfo.prePage}:1)}">上一页</a>
<a th:href="@{/user/findAll(pageNum=${pageInfo.hasNextPage}?${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
<a th:href="@{/user/findAll(pageNum=${pageInfo.pages})}">尾页</a>
</div>
</body>
</html>
4、启动测试
5、关于pageHelper
PageHelper.startPage(int PageNum,int PageSize):用来设置页面的位置和展示的数据条目数
PageInfo.list:结果集
PageInfo.pageNum :当前页码
PageInfo.pageSize :当前页面显示的数据条目
PageInfo.pages: 总页数
PageInfo.total: 数据的总条目数
PageInfo.prePage: 上一页
PageInfo.nextPage :下一页
PageInfo.isFirstPage: 是否为第一页
PageInfo.isLastPage: 是否为最后一页
PageInfo.hasPreviousPage: 是否有上一页
PageHelper.hasNextPage: 是否有下一页