limit offset,count的方式实现分页
这种分页方式可以提供完整的分页信息,比如页码,总页数(需要计算),总记录数等。
前端需要传给后台两个参数:当前页,每页显示记录数(currentPage,pageSize)或者一个参数:当前页(currentPage),每页显示记录数(pageSize)由后台自己提供。
offest和count计算方式如下:1
2int offset = (currentPage-1)*pageSize;
int count = pageSize;
MySql分页查询语句如下1
SELECT * FROM table LIMIT offset,count; -- offset 和 count替换成上面计算得结果。
查询总记录数(totalCount)Sql语句如下1
SELECT count(*) FROM table
计算总页数1
int totalCount = Math.ceil(totalCount/pageSize);//向上取整
preCursor nextCursor方式分页
这种方式分页不显示页码级总页数,总记录数等分页信息,适用于只有两个分页按钮(上一页,下一页),无限加载情况。
前端需要给后台传两个参数nextCursor(或者preCursor) 和 pageSize(pageSize也可以后台自己提供)
下一页(无限加载)对应的sql语句1
SELECT * FROM table WHERE created_at>nextCursor ORDER BY created_at DESC LIMIT pageSize; -- nextCursor 和 pageSize 替换成对应的值
上一页对应的sql语句1
SELECT * FROM table WHERE created_at<preCursor ORDER BY created_at DESC LIMIT pageSize; -- preCursor 和 pageSize 替换成对应的值
其中nextCursor和preCursor存的是created_at的一个值,比如一次行查出10条数据,那么nextCursor存的就是第十条数据的created_at值,preCursor存的就是第一条数据created_at值。preCursor 和 nextCursor 需要传给前端,便于下次翻页的时候前端再传给后端。