简述下思路:
举例:有A,B两个数据源的数据需要查询展示,优先展示A数据源数据,我使用的数据源是 clickhouse+mysql
1,因为需要优先展示A数据源嘛,那就直接通过条件优先查询A数据源数据
2,然后根据分页情况,判断A数据源数据量是否满足当前分页所需数据量。
有以下三种情况:先获取当前页的起始条数(我用到的是hutool的工具类PageUtil)
int beginNum= PageUtil.getStart(currPage, page.getPageSize()) -1; int endNum= PageUtil.getEnd(currPage, page.getPageSize()) -1;
if(beginNum > A.Count){ //直接查询B数据源数据 }else if(endNum < A.Count){ //获取A数据源数据 }else if(beginNum <=A.Count && endNum >= A.Count){ //部分A 部分B //计算偏移量 Integer offSet = a.Count % PageSize; //设置B的查询条数 b.setPageSize(PageSize - offset); }
3,最后在返回Controller层时,将A,B数据源的条数加总,求的总页数,一起返回即可
标签:Count,JAVA,分页,数据源,PageUtil,条数,beginNum From: https://www.cnblogs.com/sqh521/p/17559939.html