使用tk.mapper mybatis 插件注意点时对于实体类中某字段不是表中字段,处理方式_奋斗者ing的博客-优快云博客_tkmybatis 忽略字段
【PageHelper】PageHelper分页失效问题排查 - 掘金 (juejin.cn)
Mybatis分页插件PageHelper - 简书 (jianshu.com)
在维护老项目的时候,发现使用的分页框架是 PageHelper。还是写篇笔记记录下。
- 该项目使用的是 SpringBoot
- 分页的插件使用的是包(com.github.pagehelper)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
在配置文件中的配置:
#pagehelper分页助手
pagehelper:
helperDialect: mysql
reasonable: false
supportMethodsArguments: true
params: count=countSql
特别提醒下,如果 reasonable 设置为 true 的话,遇到查询页数大于总页数时,查询最后一页的数据。
所以会导致,无论 pageNum 参数是多少,总会有数据返回。
代码如下:
@Override
public PageInfo<RulePageDTO> page(RulePageReq req) {
PageInfo<RulePageDTO> result = PageHelper.startPage(req.getPageNum(), req.getPageSize()).doSelectPageInfo(() -> {
List<RulePageDTO> page =
RuleConfigurationMapper.RulePage(req.getStoreName(), req.getName(), req.getState());
});
return result;
}
分页的代码确实比较简洁,只有几行就完成分页操作。不过查阅网上相关文章,据说 startPage 方法后要紧跟查询的sql。
请求参数
{
"pageNum": 3,
"pageSize": 10
}
执行结果日志:
2022-04-12 17:26:43.794 DEBUG 19080 --- [nio-8401-exec-5] c.m.m.I.scheduleRulePage : ==> Preparing: SELECT * FROM rule_configuration t1 INNER JOIN rule_store t2 ON t1.id = t2.rule_id WHERE 1=1 ORDER BY t1.updated_at DESC LIMIT ?, ?
//可以看到自动拼接了分页的参数
2022-04-12 17:26:43.795 DEBUG 19080 --- [nio-8401-exec-5] c.m.m.I.scheduleRulePage : ==> Parameters: 20(Integer), 10(Integer)
2022-04-12 17:26:43.800 DEBUG 19080 --- [nio-8401-exec-5] c.m.m.I.scheduleRulePage : <== Total: 0
mybatis-plus分页可参考:https://blog.youkuaiyun.com/mikelv01/article/details/124048620
本文介绍了在SpringBoot项目中使用PageHelper分页插件的配置和使用方法,包括依赖引入、配置项解析。当`reasonable`设置为`true`时,若请求页数超过实际页数,会返回最后一页数据。示例代码展示了如何进行分页查询,以及分页查询的日志输出。同时,文章提到了PageHelper分页失效可能的问题及解决思路,并提供了mybatis-plus分页的参考链接。
5万+

被折叠的 条评论
为什么被折叠?



