【Mybatis知识点整理】 --- springboot项目里PageHelper的使用

源码地址:https://github.com/nieandsun/mybatis-study


1 Mybatis_PageHelper网址记录

(1)码云站点:https://gitee.com/free/Mybatis_PageHelper

(2)github站点:https://github.com/pagehelper/Mybatis-PageHelper

(3)与springboot的集成:https://github.com/pagehelper/pagehelper-spring-boot

(4)如何使用PageHelper:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md


2 springboot项目里集成PageHelper插件


2.1 pom.xml

PageHelper相关的依赖只需要添加下面这一个就行:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

2.2 yml配置文件

在yml文件里进行PageHelper相关的配置

pagehelper:
  reasonable: true
  support-methods-arguments: true
  params: countSql
  # 这里格外注意,在5.0以后的版本,使用了helperDialect代替了原来的dialect属性
  helper-dialect: mysql

3 简单使用


3.1 仅使用Page对象

  • service层代码:
/****
 * 使用Page对象
 * @return
 */
@Override
public List<TJobHistory> selectJobHistory() {
	//指定当前页和每页显示的个数
    Page<Object> page = PageHelper.startPage(2, 3);
    List<TJobHistory> tJobHistories = jobHistoryMapper.selectJobHistory();
    System.err.println("当前页码:" + page.getPageNum());
    System.err.println("总记录数:" + page.getTotal());
    System.err.println("当前页的记录数:" + page.getPageSize());
    System.err.println("总页码:" + page.getPages());
    //等等
    return tJobHistories;
}
  • 测试结果如下:

在这里插入图片描述


3.2 使用PageInfo对象1 —> 获取稍复杂的分页信息

  • service层代码:
/***
 * 使用PageInfo对象 --- 可以获取更加详细的分页信息
 * @return
 */
public List<TJobHistory> selectJobHistory1() {

    PageHelper.startPage(1, 3);
    List<TJobHistory> tJobHistories = jobHistoryMapper.selectJobHistory();
    PageInfo<TJobHistory> info = new PageInfo<>(tJobHistories);
    System.err.println("当前页码:" + info.getPageNum());
    System.err.println("总记录数:" + info.getTotal());
    System.err.println("当前页的记录数:" + info.getPageSize());
    System.err.println("总页码:" + info.getPages());

    System.err.println("是否为第一页:" + info.isIsFirstPage());
    System.err.println("是否为最后一页:" + info.isIsLastPage());
    System.err.println("是否还有下一页:" + info.isHasNextPage());
    //等等
    return tJobHistories;
}
  • 测试结果如下:

在这里插入图片描述


3.3 使用PageInfo对象2 —> 获取更复杂的分页信息 — 连续显示的页码

  • service层代码:
/****
  * 使用PageInfo对象 --- 构造函数为PageInfo(List<T> list, int navigatePages)
  * navigatePages:  连续显示的页面
  *    比如navigatePages=3
  *       看第一页时,页码展示为 1,2,3
  *       看第二页时,页码展示为 1,2,3
  *       看第三页时,页码展示为 2,3,4
  *       看第四页时,页码展示为 3,4,5
  *  我们项目里该功能其实是用前端组件完成的。。。。。
  * @return
  */
 public List<TJobHistory> selectJobHistory2() {
     int pageNum = 4;
     int pageSize = 1;
     PageHelper.startPage(pageNum, pageSize);
     List<TJobHistory> tJobHistories = jobHistoryMapper.selectJobHistory();

     PageInfo<TJobHistory> info = new PageInfo<>(tJobHistories, 3);

     System.err.println("当前页码:" + info.getPageNum());
     System.err.println("总记录数:" + info.getTotal());
     System.err.println("当前页的记录数:" + info.getPageSize());
     System.err.println("总页码:" + info.getPages());

     System.err.println("是否为第一页:" + info.isIsFirstPage());
     System.err.println("是否为最后一页:" + info.isIsLastPage());
     System.err.println("是否还有下一页:" + info.isHasNextPage());

     int[] navigatepageNums = info.getNavigatepageNums();
     System.err.println("看第" + pageNum + "页时,展示的页码为:" );
     for (int num : navigatepageNums) {
         System.err.println(num);
     }

     return tJobHistories;
 }
  • 测试结果如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值