对于PageHelper,我个人是不喜欢的,但是因为公司项目用到了,又难免和他打交道。
针对PageHelper我主要记录下我遇到过的几个问题,回答的可能不太正规,都是一些我个人的见解。
问题一:
sql语句打印为:order by data_oper_time desc limit 1 LIMIT ?。
该情况是因为分页参数为pageNum,pageSize,因为这两个参数是PageHelper的参数,有的话会默认带上,所以我一般是把这两个参数换个名。
也有说先创建PageHelper.startPage(pageNum,pageSize),再执行查询sql。这种方法我没试过,一个是我换个名就可以规避这个影响,再一个是因为公司有个需求需要把所有的用户数据查出来排序打标签,所以只能是全查出来,设置这个没啥用
问题二
就像我在问题一中描述的,有的时候需要我们把所有的数据查出来进行排序修改数据,然后分页返回给前端。我在项目中遇到一个问题就是我需要全查出来,然后再去分页,因为不确定有多少数据(我个人确认查一次不会超过500),我就修改了pageSize(PageHelper默认大小),但是查询出来数据没有问题,再用PageHelper分页就有问题了,设置pageSize不再生效(原因是PageHelper需要和sql联用),所以又自己手动写了一个分页。
问题三
启动项目时,在拦截器查询数据使用了PageHelper,但是没有不生效。因为PageHelper也是使用的拦截器,拦截器的执行顺序是自己自定义的拦截器,然后是PageHelper拦截器注入。可以将自定义的拦截器加到其他拦截器后面。