若依中的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
是一个流行的 MyBatis 分页插件,它允许你非常简单地实现数据库查询的分页功能。
但是,确实存在一些“坑”或者需要特别注意的地方,特别是在使用 PageHelper.startPage
方法时。
主要的“坑”或注意事项:
使用 PageHelper.startPage
方法时,需要注意它只会对紧接着的、由 MyBatis 执行的第一个查询语句产生分页效果。
这是因为 PageHelper
通过内部机制(通常是 ThreadLocal
)来保存分页参数,而这些参数只会在紧接着的下一个 MyBatis 查询中被使用。
因此,如果获取准确的分页信息(包括总记录数),您必须确保:
PageHelper.startPage(pageNum, pageSize)
方法。startPage
方法之后执行 MyBatis 查询语句。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();
// ... 其他处理逻辑 ...