首页 > 其他 > 详细

Mybatis PageHelper最易懂的使用总结

时间:2021-02-15 10:10:11      阅读:18      评论:0      收藏:0      [点我收藏+]

网上能找到的教程,关于如何配置一般写的都很清楚,配置完成之后,发现最多只是做一下注释,看过之后实际使用却会出现问题,想在这里做一下总结。
使用之前,记得导入依赖,并在Mybatis配置文件中启用。

先简要说一下它的原理。PageHelper在需要使用它的时候加入如下代码。
PageHelper.startPage(pageNum, pageSize);
pageNum, pageSize 分别指 当前的页码,每页的条目数。
这之后,pageHelper在后续的代码中将对传入的列表进行分页。

通常我们会将它用在业务Service层,将分页好的数据传给Controller。现将一段代码作为示例:

其中几点:

方法的返回值为: PageInfo<Route> Route为泛型,为列表数据的pojo类
入参:PageBean是自定义封装的形式,其中包含了pageNum pageSize属性

 @Override
    public PageInfo<Route> findRouteList(Pagebean pb) {

        int pageSize = pb.getPageSize();
        int pageNum = pb.getPageNum();

        PageHelper.startPage(pageNum, pageSize);
        //调用dao层从数据库取列表数据(sql无需做limit分页)
        List<Route> routes = routeDao.findRouteAllInOne(pb);
        
        //将列表数据 交给pageHelper处理
        PageInfo<Route> pageInfo = new PageInfo<Route>(routes);
        return pageInfo;
    }

 

PageInfo返回到前端的格式为

其中能用到的数据非常多,以注释的形式标注

{
endRow: 5
hasNextPage: true                //是否有下一页(通常用来决定是否显示 "下一页"链接)
hasPreviousPage: false        //是否有上一页(通常用来决定是否显示 "上一页"链接)
isFirstPage: true                    //是否是首页
isLastPage: false                  //是否是尾页
list: [分页后 当前页的对象list]      //列表数据 将用来在页面for展示
navigateFirstPage: 1                
navigateLastPage: 8        //这两项 ,在手写分页导航条的时候有用,如果使用前端框架 可能用不上
navigatePages: 8           //分页导航条中 想显示的数量,(结果有100页 ,当前页最多只显示8页的链接,决定了navigatepageNums列表的长度)
navigatepageNums: [1, 2, 3, 4, 5, 6, 7, 8]
nextPage: 2
pageNum: 1
pageSize: 5
pages: 104                    //总页数
prePage: 0                    //上一页页码
size: 5
startRow: 1
total: 517                  //总条目数
}

 

手写导航条示例,会发现很多数据都用的上

配合使用前端框架分页组件 ,效果更佳

<div class="page_num_inf">
      <i></i><span v-text="pageInfo.pages"></span><span v-text="pageInfo.total"></span></div>
  <div class="pageNum">
      <ul id="laypage">
          <li><a @click="changePage(1)">首页</a></li>
          <li class="threeword" v-show="pageInfo.hasPreviousPage"><a @click="changePage(pageInfo.prePage)" >上一页</a></li>

          <li  v-for="pageNum in pageInfo.navigatepageNums"><a  @click="changePage(pageNum)"  v-text="pageNum"></a></li>

          <li class="threeword" v-show="pageInfo.hasNextPage"><a @click="changePage(pageInfo.nextPage)" >下一页</a></li>
          <li class="threeword" v-show="pageInfo.hasNextPage"><a @click="changePage(pageInfo.pages)" >末页</a></li>
      </ul>
  </div>

 

Mybatis PageHelper最易懂的使用总结

原文:https://www.cnblogs.com/buglife/p/14402134.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!