首页 > 其他分享 >8.18

8.18

时间:2023-08-19 21:56:11浏览次数:31  
标签:pageNum pageSize int list startRow 8.18 endRow

适用背景
由于项目需求,需查询活动列表名单,并统计活动对应用户数。由于数据库表结构设计,活动基本信息存储在一张小数据量表,活动对应的用户信息存储在大数据量表,直接left join 并SUM的话,性能会急剧下滑,因此采取先拉取活动列表,再循环统计活动用户数的方式。而为了配合新增需求,剔除不满足条件的活动(如用户数为0),再返回前台;需要改变原有limit offset的分页方式,否则会出现分页,total计数不准的情况,查阅资料后发现物理分页包括pageHelper等工具,都是在dao层已经分页并返回,无法适配业务筛选条件。因此改为逻辑内存分页,实现起来的代码也很简单:

public static List rowBounds(int pageNum, int pageSize, List list) {
pageNum = Math.max(pageNum, 0);
// 默认至少返回5行
pageSize = Math.max(pageSize, 5);
int startRow = 0;
int endRow = 0;
if (list == null || list.size() == 0) {
return list;
}
int totalCount = list.size();
startRow = pageNum > 0 ? pageNum * pageSize : 0;
endRow = startRow + pageSize;
endRow = Math.min(endRow, totalCount);
list = list.subList(startRow, endRow);
return list;
}

标签:pageNum,pageSize,int,list,startRow,8.18,endRow
From: https://www.cnblogs.com/xianyu369/p/17643201.html

相关文章

  • 8.18总结
    今天五点半起来,检查东西是否都带齐,今天奶奶也要做手术,希望能够快快好起来,中午一点多到学校,搬行李,累死个人,行李很重而且二教离九栋很远,累的我虚脱,晚上洗澡逃了培训会,然后和妈妈打电话询问奶奶情况,做了微创手术,过几天应该可以出院了,然后就找朋友玩了会,就睡觉了......
  • 8.18Day2
    0+60+60+95=215T1期望还是太差了,说是找规律,看了2个小时都没有找出规律,因为多测,40暴力分暴力还挂了按每个位置考虑,因为期望的线性性,考虑最终是不是在原位上即可,只有01所以是伯努利分布,E=np,递推或者找通项都okT2原题,吐槽一下大样例,完全没有强度,过了只有60分T3直接逆向还原(a,b)......
  • 8.18日
    活在当下享受现在今天和朋友谈了心,谈了对未来的想法,我想要什么?我能做什么?说实话,我很迷茫,我的未来充满着不确定性,谈话中我们聊到,你所有的迷茫焦虑都来源于你现在想要的太多,而现在的你并没有实现这个梦想的能力,此时你就陷入了一个死循环,拼命的想改变,却没有改变的能力,就只能......
  • 8.18闲话
    今天依旧睡到7点半......
  • 2023.8.18A组模拟赛总结
    T1幂矩阵这题十分巧合。题目大意是有这样一个矩阵求该矩阵的逆矩阵中每项元素的平方和,手模几个点,会发现以下结论\[(P_n)^{-1}(i,j)=\begin{cases}i^m\binomij\quadi\geqj\\0\quadi<j\end{cases}\]不难发现我们的答案即是\[\sum_{i=1}^ni^{2m}\sum_{j=1}^i\bin......
  • 暑假周记(8.18)
    Java正则表达式在其他语言中,\表示我想要在正则表达式中插入一个普通的反斜杠,请不要给它任何特殊意义;在Java中,\表示我要插入一个正则表达式的反斜线,其后的字符具有特殊的意义。一位数字的正则表达式是\d,表示一个普通的反斜杠是\\正则表达式语法\:将下一字符标记为特殊字符、文本、......
  • 8.18 模拟赛小结
    前言不平衡的一集T1动态数点题意很清楚我们先思考怎么暴力搞如果一个数是\(k\)那么它一定是这个区间的最大公约数可以直接搞个ST表加二分每次枚举左端点由于gcd和二分都有\(\log\)总时间复杂度\(O(n\log^2n)\)然后就挂了30pts(((考虑优化成\(O(n\log......
  • 8.18-零件出图(水路出图-线割出图)-顶出距离=产品最深胶位+15 ( 相加不满20设置为20 )
    上下顺序是:零件出图-水路出图-线割出图  ......
  • 8.18 模拟赛小记 & 学习
    谔谔谔谔。菜翻天。今天模拟赛题目传送门。A.跳蚤市场(mid)话说我才看到这个英文名字叫mid。然后就是手写lower_bound和upper_bound优化前缀和。B.组合问题(anm)这个错排之前上课讲过于是一眼了。可惜没看longlong祖宗十八代都被炸死了。C.旅行(day)图论题。D.购物(t......
  • 8.18集训笔记
    上午递归,文件B2064斐波那契数列P1255数楼梯点击查看代码#include<bits/stdc++.h>usingnamespacestd;//#defineTlonglongtypedeflonglongLL;//取别名,以后使用LL就是longlongconstintN=5e3+10;LLfib[N];LLf(intn){//递归if(n<=2)return......