关于在springboot2中使用分页插件PageHelper这件事

阅读提示:本篇主要是关于pagehelper的简单使用,想要做深入了解的可能要失望了,这里贴一下官方文档方便大家查阅官方文档:如何使用分页插件

pagehelper是一款非常简单好用的分页插件,下面由本人分步骤介绍一下基础用法:

1、pom文件中引入pagehelper相关的jar包

<!--PageHelper分页插件-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.10</version>
</dependency>

2、在properties文件中进行相关配置

#设置pagehelper分页插件的属性
#分页插件会自动检测当前的数据库链接,自动选择合适的分页方式
pagehelper.helper-dialect=mysql
#分页合理化参数,默认值为false
pagehelper.reasonable=true
#支持通过 Mapper 接口参数来传递分页参数,默认值false
pagehelper.support-methods-arguments=true

3、在controller中使用分页

这里使用的是Mapper接口方式的调用
注意事项:
1.只有紧跟在PageHelper.startPage方法后的第一个 Mybatis的查询(选 择)方法会被分页
2.其它重要提示

@Autowired
OrderMapper orderMapper;
@RequestMapping("/order.html")
public ModelAndView userOrder(@RequestParam("pageNum") int pageNum,
                              HttpSession session){
    ModelAndView view = new ModelAndView("userCenter/user_center_order.html");
    /*分页插件会自动分页紧跟在PageHelper.startPage(pageNum,pageSize)后面的第一条查询语句
    * startPage的两个属性分别是:1.pageNum当前是第几页
    *                          2.pageSize一页分多少条数据*/
    Page page = PageHelper.startPage(pageNum, 4);
    orderMapper.getUserOrderFrom(1000);
    //将数据封装到pageInfo类中,接下来就可以直接将pageInfo返回给页面进行前端展示了
    PageInfo pageInfo = new PageInfo<>(page.getResult());
    view.addObject("pageInfo",pageInfo);
    return view;
}

4、前端的相关展示

数据直接拿pageInfo中的list遍历即可,这里只简略的展示下我的分页导航栏

<div class="pagenation">
   <a th:href="${'/order.html?pageNum='}+${pageInfo.prePage}"><上一页</a>
   <a th:href="${'/order.html?pageNum='}+${number}"
                   th:each="number:${pageInfo.navigatepageNums}"
                   th:class="${pageInfo.pageNum==number?'nav-link active':'nav-link'}">[[${number}]]</a>
   <a th:href="${'/order.html?pageNum='}+${pageInfo.nextPage}">下一页></a>
</div>

其它:关于pageinfo类

简介:pageinfo对pageHelper分页的结果集进行了封装,包含了非常全面的分页属性
PageInfo类属性详解:

 private int pageNum;      //当前页的页码
    private int pageSize;      //每页的数量
    private int size;            //当前页的数量

////可以在页面中"显示startRow到endRow 共size条数据"
    private int startRow; //当前页面第一个元素在数据库中的行号
    private int endRow;//当前页面最后一个元素在数据库中的行号
    
    private long total;     //总记录数
    private int pages;       //总页数
    private List<T> list;      //结果集,当前页用来展示的数据
    
    private int prePage;    //上一页
    private int nextPage;   //下一页
    private boolean isFirstPage;   //是否为首页
    private boolean isLastPage;   //是否为尾页
    private boolean hasPreviousPage;       //是否有前一页
    private boolean hasNextPage;          //是否有下一页
    
    private int navigatePages;          //每页显示的页码个数
    private int[] navigatepageNums;       //所有导航页号
    private int navigateFirstPage;       //导航条上的第一页
    private int navigateLastPage;     //导航条上的最后一页

以上就是我花三天时间摸索出来的全部成果了,感觉学的有点慢呢,可能是因为第一次离开老师自己去学习一款插件吧。。

以后自学的效率再高一点就好了,记得有什么错误或纰漏记得在评论区或私信告诉我哦~~
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读