使用spring-boot搭建的小项目,写crud,做分页显示的功能时,尝试使用了 手动写sql语句,mybatis-plus的IPage方法,PageHelper插件 三种方法。
因为是先用PageHelper插件写的,所以优先导入了PageHelper依赖,之后再使用sql语句在xml文件写"select * from table_name where 条件 limit pageNum,pageSize"分页。但在运行后,swagger报错500,查看控制台,显示的是select count(0) from table_name where 条件 limit pageNum,pageSize。将select * 换为select city(city是表中的一个属性),再次运行显示的仍然是select count(0)。
猜测是pageNum和pageSize的问题。于是先去掉pageNum和pageSize,运行成功了。尝试只将pageNum添加回来,同样运行成功。猜测是pageNum和pageSize命中了PageHelper的过滤器。所以更换了pageNum和pageSize的变量名,运行成功。
后续查询了pageHelper的文档,确实当pageNum和pageSize同时存在的时候,会触发分页操作。
文档链接:如何使用分页插件 (pagehelper.github.io)
为了避免由于重名导致的此问题,可以在yml文件中配置,将pageNum和pageSize改为pageNumKey和pageSizeKey(下图最后一行)。或者将他们名字换为不同的(比如a和b)也可以。
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: pageNum=pageNumKey;pageSize=pageSizeKey;