PageHelper.startPage () 必须加在执行查询sql语句方法之前。如若不然,会导致数据库查询时,分页失效。
return返回的对象,必须是startPage()的下一行代码返回的对象。如若不然,会导致返回的结果,丢失当前页,总页数,总条数等数据。
若使用mysql版本高于5.6,或postgresql是高版本,且排序字段不唯一,分页时则会出现重复数据。
针对问题三建议解决方案为:在排序时,添加唯一排序字段,并重写若依的startPage()方法,改为如下代码。其中,userId唯一。
PageDomain pageDomain = TableSupport.buildPageRequest();Integer pageNum = pageDomain.getPageNum();Integer pageSize = pageDomain.getPageSize();String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy())+","+SqlUtil.escapeOrderBySql("userId");Boolean reasonable = pageDomain.getReasonable();PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
来源地址:https://blog.csdn.net/fangjial/article/details/129829716