若依RuoYi-Vue分离版—PageHelper分页的坑

(一)读取分页属性(pageNum、pageSize)只支持Parameter对象

若依中的PageHelper的分页读取只支持get请求的Parameter对象
例如:http://localhost/balocal-api/system/dict/type/list?pageNum=1&pageSize=10

修改方法一:在前端post请求上再加上

export function listDdjl(query) {
  return request({
    url: '/kqgl/ddjl/getListBySx?pageNum='+query.pageNum+'&pageSize='+query.pageSize,
    method: 'post',
    data: query
  })
}

修改方法二:修改接口的实体类对象,自己加上pageNum、pageSize属性

(二)PageHelper分页本身的使用方式的坑

PageHelper 是一个流行的 MyBatis 分页插件,它允许你非常简单地实现数据库查询的分页功能。
但是,确实存在一些“坑”或者需要特别注意的地方,特别是在使用 PageHelper.startPage 方法时。

主要的“坑”或注意事项
使用 PageHelper.startPage 方法时,需要注意它只会对紧接着的、由 MyBatis 执行的第一个查询语句产生分页效果。
这是因为 PageHelper 通过内部机制(通常是 ThreadLocal)来保存分页参数,而这些参数只会在紧接着的下一个 MyBatis 查询中被使用。

因此,如果获取准确的分页信息(包括总记录数),您必须确保:

  1. 在执行分页查询之前调用 PageHelper.startPage(pageNum, pageSize) 方法。
  2. 紧接着 startPage 方法之后执行 MyBatis 查询语句。
  3. 使用查询结果集(通常是 List 类型)作为参数来创建 PageInfo 对象,例如 new PageInfo<>(resultList)

这样,PageInfo 对象就能够根据查询结果和之前通过 startPage 方法设置的分页参数来正确地计算出总记录数、总页数等信息。

下面是一个简单的示例代码流程:

遵循这个流程,才能保证 分页成功总记录数准确

// 设置分页参数  
PageHelper.startPage(pageNum, pageSize);  
  
// 执行查询(必须是紧接着startPage之后的第一个MyBatis查询)  
List<InvestorInfo> investorInfos = investorMapper.selectInvestorInfoList(...);  
  
// 使用查询结果集创建PageInfo对象  
PageInfo<InvestorInfo> pageInfo = new PageInfo<>(investorInfos);  
  
// 现在pageInfo中包含了准确的分页信息,包括总记录数  
long total = pageInfo.getTotal();  
  
// ... 其他处理逻辑 ...
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值