pagehelper 分页查询

pagehelper 分页

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

properties 文件配置

> pagehelper.helper-dialect = mysql
#在web页面中做分页,pageNo,pageSize
select * from user limit (1-1),2  #第一页
select * from user limit (2-1)2,2  #第二页
select * from user limit (3-1)4,2  #第三页

pagehelper 分页非常简单

//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
//紧跟着的第一个select方法会被分页
List<Country> list = countryMapper.selectIf(1);
assertEquals(2, list.get(0).getId());
assertEquals(10, list.size());
//分页时,实际返回的结果list类型是Page<E>,如果想取出分页信息,需要强制转换为Page<E>
assertEquals(182, ((Page) list).getTotal());
@Data
public class Entity {

    private Integer pageNo;
    private Integer pageSize;


}
@Data

public class User extends Entity {

    private int id;

    private String  userName;

    private String  password;

}
如果有很多个类,需要分页,需要使用这个字段,继承Entity 就好了
在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。

使用PageInfo的用法:

//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();
//用PageInfo对结果进行包装
PageInfo page = new PageInfo(list);
//测试PageInfo全部属性
//PageInfo包含了非常全面的分页属性
assertEquals(1, page.getPageNum());
assertEquals(10, page.getPageSize());
assertEquals(1, page.getStartRow());
assertEquals(10, page.getEndRow());
assertEquals(183, page.getTotal());
assertEquals(19, page.getPages());
assertEquals(1, page.getFirstPage());
assertEquals(8, page.getLastPage());
assertEquals(true, page.isFirstPage());
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());
assertEquals(true, page.isHasNextPage());

UserService 查询进行分页对返回结果进行封装成PageInfo

    public PageInfo<User> query(User user){
        if(user != null && user.getPageNo() != null){
            PageHelper.startPage(user.getPageNo(),user.getPageSize());
        }
        List<User> list = userMapper.query(Maps.build().beanToMap(user));

        return new PageInfo<User>(list);
    }
   @PostMapping("/query")
    public Result query(@RequestBody  User user){
        PageInfo<User> pageInfo = userService.query(user);
        return Result.ok(pageInfo);
    }

测试
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PageHelper一个用于实现分页查询的框架。通过提供页码和每页条数,PageHelper可以自动实现分页效果,并收集分页信息。它的原理是在程序运行时,拦截SQL语句,在语句尾部添加limit关键字,并按照分页信息向limit后追加分页数据。 在控制层的代码中,可以看到对PageHelper的使用。通过@GetMapping和@ApiImplicitParams注解,配置了分页查询的接口。其中,page参数表示页码,pageSize参数表示每页的条数。通过调用orderService.getAllStudentsByPage方法,实现了分页查询,并将查询结果封装到PageInfo对象中。最后,返回JsonResult对象,携带分页查询的结果信息。 综上所述,PageHelper一个方便实现分页查询的框架,通过配置页码和每页条数,自动实现分页效果,并收集分页信息。在控制层中,可以通过调用getAllStudentsByPage方法,实现分页查询,并返回查询结果和分页信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [pagehelper实现分页查询](https://blog.csdn.net/Suphans/article/details/128891071)[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: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值