一,前提环境条件:已创建好一个简单的springboot项目
springboot整合pagehelper分页插件步骤如下:
1.导入对应的maven依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.4</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2.在application.properties配置文件中配置插件信息
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
3.数据库准备部分数据
4.controller层代码
@RequestMapping("/Test")
@RestController
@CrossOrigin
public class TestController {
@Autowired
private StudentService studentService;
@GetMapping ("findAll")
public Map findAll(Integer pageNum, Integer limit) {
List<Student> list = studentService.findAll(pageNum, limit);
PageInfo pageInfo = new PageInfo(list);
Map map = new HashMap();
map.put("pageInfo",pageInfo);
return map;
}
}
5.service层代码
@Service
@Transactional
public class StudentServiceImpl implements StudentService {
@Resource
private StudentMapper studentMapper;
@Override
public List<Student> findAll(Integer pageNum,Integer limit) {
if (pageNum == null) {
pageNum = SystemConstants.DEFAULT_PAGE_NUM;
}
if(limit == null) {
limit = SystemConstants.DEFAULT_PAGE_SIZE;
}
PageHelper.startPage(pageNum,limit);
return studentMapper.findAll();
}
}
6.mapper层代码
@Mapper
public interface StudentMapper {
List<Student> findAll();
}
7.常量配置类代码
/**
* @author XuJinHua
* @ClassName SystemConstants
* @description TODO
* @date 2020/4/29 18:09
* @Version 1.0
*/
public class SystemConstants {
/**
* 默认一页的数据量
*/
public static final int DEFAULT_PAGE_SIZE = 10;
/**
* 默认分页的起始页
*/
public static final int DEFAULT_PAGE_NUM = 1;
}
8.测试结果
二,注意事项
1.我们这次使用的分页方式是调用PageHelper的静态方法startPage来进行分页的;在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage
静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。
2.PageInfo对象对返回的结果进行了良好的封装,这个对象里面包含了非常全面的分页属性。
total 12 数据总条数
list […] 数据集合
pageNum 2 当前页码
pageSize 5 当前页显示的数据条数
size 5 当前页个数
startRow 6 从第几条开始
endRow 10 到第几条结束
pages 3 总页数
prePage 1 上一页
nextPage 3 下一页
isFirstPage false 是否为第一页
isLastPage false 是否为最后一页
hasPreviousPage true 是否有上一页
hasNextPage true 是否有下一页
navigateFirstPage 1 首页
navigateLastPage 3 尾页