SpringBoot集成分页插件PageHelper

1 引入依赖

#本次测试用的springboot版本为2.1.5.RELEASE,其他版本自测
#
       <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>

2 写代码

public PageInfo  findItemByPage(Map<String,Object> queryMap,int currentPage,int pageSize) {
          //设置分页信息,分别是当前页数和每页显示的总记录数【记住:必须在mapper接口中的查询方法执行之前设置该分页信息】
        PageHelper.startPage(currentPage, pageSize);
        //mapper接口中的查询方法执行
        List<Item> itemsList = itemMapper.findItem(queryMap);
        //PageInfo 是 pagehelper中内值的分页的信息类
        PageInfo<Item> info=new PageInfo<>(itemsList);
        // 返回值是 PageInfo
        return info;  
    }

还可以这样用lambda表达式写法

  PageInfo<RecruitOrgDO> pageInfo = PageHelper
                .startPage(request.getPageNum(), request.getPageSize())
                .doSelectPageInfo(() -> recruitOrgService.selectLikeName(request.getName()));

3 返回值

#在2中的返回值结构  PageInfo<Employee> info=new PageInfo<>(itemsList);
{
    "navigatepageNums":Array[8],  //所有导航页号
    "startRow":1,  //当前页面第一个元素在数据库中的行号
     "endRow":3,  //当前页面最后一个元素在数据库中的行号
    "hasNextPage":true,  //是否有下一页
    "prePage":0,  //前一页
    "nextPage":2,  //
    "pageSize":3,  //每页的数量
    "list":Array[3],  //结果集(每页显示的数据)
    "pageNum":1,  //当前页
    "navigatePages":8,  //导航页码数
    "navigateFirstPage":1,  //
    "total":65,  //总记录数
    "pages":22,  //总页数
    "size":3,  //当前页的数量
    "isLastPage":false,  //是否为最后一页
    "hasPreviousPage":false,  //是否有前一页
    "navigateLastPage":8,  //
    "isFirstPage":true  //是否第一页
}

4遇到的坑

  • 结果集,不分页的问题:很有可能startPage下有两个查询结果集,如下代码;
public PageInfo  findItemByPage(Map<String,Object> queryMap,int currentPage,int pageSize) {
          //设置分页信息,分别是当前页数和每页显示的总记录数
          //【记住:必须在mapper接口中的查询方法执行之前设置该分页信息】
          //只对其后的第一个查询有效
        PageHelper.startPage(currentPage, pageSize);
       
        List<Item> itemsList = itemMapper.findItem(queryMap);    // 执行分页查询
        
        List<Item> itemsList2 = itemMapper.findItem(queryMap);   // 不会执行分页查询(即使把itemsList2 加入PageInfo 中也不会出现分页情况)
        
       
        PageInfo<Item> info=new PageInfo<>(itemsList);
        
        return info;  
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot项目中集成PageHelper分页插件的步骤如下: 1. 打开Maven库,找到com.github.pagehelper:pagehelper-spring-boot-starter。 2. 确定需要使用的版本号,比如1.4.1。 3. 在项目的pom.xml文件中添加PageHelper的依赖。可以使用如下代码: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.1</version> </dependency> ``` 4. 在application.properties或application.yml配置文件中进行配置,添加以下属性: ``` # 开启分页支持 pagehelper.helper-dialect=mysql pagehelper.reasonable=true pagehelper.support-methods-arguments=true pagehelper.params=count=countSql ``` 这里的配置是针对MySQL数据库的,如果你使用的是其他数据库,需要根据对应的数据库类型进行配置。 5. 在需要分页的Mapper方法上使用PageHelper.startPage方法来开启分页功能。例如: ``` @Mapper public interface UserMapper { List<User> getUsers(); } ``` 在UserMapper接口中的方法上加上注解@Select,并在方法内部使用PageHelper.startPage方法开启分页,如下所示: ``` @Select("SELECT * FROM user") List<User> getUsers(); ``` 6. 运行项目,分页功能就会生效。 通过以上步骤,你就可以在Spring Boot项目中成功集成PageHelper分页插件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot整合分页插件PageHelper](https://blog.csdn.net/weixin_42408447/article/details/117528795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Springboot集成pagehelper 分页插件](https://blog.csdn.net/weixin_58696998/article/details/124397756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值