1.PageHelper.startPage () 必须加在执行查询sql语句方法之前。如若不然,会导致数据库查询时,分页失效。

2.return返回的对象,必须是startPage()的下一行代码返回的对象。如若不然,会导致返回的结果,丢失当前页,总页数,总条数等数据。

3.若使用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);

Logo

快速构建 Web 应用程序

更多推荐