PageHelper查询数据分页后,对数据二次处理后,如何更新分页信息?

¥小添添¥ 2019-11-04 08:44:56
求各位大神帮助
目前用PageHelper在做分页,由于某个条件在数据库中没法拆分,我在java里做了处理,删除里list的部分数据。但分页信息不会自动更新,请问这个分页信息需要如何更新?
代码如下:

public List selectRecordMsg(Map filterMap) {
PageHelper.startPage(Integer.valueOf(filterMap.get(HrConstants.PAGE_NUM).toString()), Integer.valueOf(filterMap
.get(HrConstants.PAGE_SIZE).toString()), "1".equals(filterMap.get(HrConstants.PAGE_NUM).toString()));

List<RecordDto> list = recordMapper.selectAllMsg(filterMap);
//这里已经稍微处理了下数据,但没有删条数,所以对分页没影响。
for(RecordDto recordDto:list){
changeDemand(recordDto);
buildPersonName(recordDto);
}
//以下就是根据条件删除了几行数据
if(某种条件时处理数据) {
String personName = filterMap.get("personName").toString();
Iterator<RecordDto> it = list.iterator();
while (it.hasNext()) {
RecordDto dic = it.next();
if (满足某种条件时){
it.remove();//这里一旦删了条数,分页就全乱了,不知道该怎么办?
}
}
}
return list ;

求大神帮忙!
...全文
4395 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
戎码一生灬 2020-03-26
  • 打赏
  • 举报
回复
引用 11 楼 watch_264 的回复:
[quote=引用 10 楼 James灬Gosling 的回复:]
[quote=引用 9 楼 watch_264 的回复:]
楼主问题解决了吗?对查询出来的数据,条件判断后,再进行分页? 我现在遇到这个问题 ,难受,求解答



条件判断为什么不放到sql里面呢?
如果必须放到内存里,那就把所有的户据查出来,然后自己在内存里分页吧,数据多可能会爆内存哦[/quote]

是的,昨天我也想了好久,决定在sql里做判断
第一、自己在内存中重新进行分页,自己写太耗时间,需要再找新的工具类,懒得找
第二、由于我这是分页查询,差不多只查询10条,时间复杂度就是10 * 对应的条件处理复杂度,而如果在java里,则是全部数据 * 对应的条件处理复杂度,创建对象太多的话,容易gc,且完了之后还要重新进行分页,性能也就那样
所以综上考虑,就放在sql里了[/quote]

原则上是尽量减少与数据库的交互,并且尽量减少从数据库查询的数据量
watch_264 2020-03-26
  • 打赏
  • 举报
回复
引用 10 楼 James灬Gosling 的回复:
[quote=引用 9 楼 watch_264 的回复:] 楼主问题解决了吗?对查询出来的数据,条件判断后,再进行分页? 我现在遇到这个问题 ,难受,求解答
条件判断为什么不放到sql里面呢? 如果必须放到内存里,那就把所有的户据查出来,然后自己在内存里分页吧,数据多可能会爆内存哦[/quote] 是的,昨天我也想了好久,决定在sql里做判断 第一、自己在内存中重新进行分页,自己写太耗时间,需要再找新的工具类,懒得找 第二、由于我这是分页查询,差不多只查询10条,时间复杂度就是10 * 对应的条件处理复杂度,而如果在java里,则是全部数据 * 对应的条件处理复杂度,创建对象太多的话,容易gc,且完了之后还要重新进行分页,性能也就那样 所以综上考虑,就放在sql里了
戎码一生灬 2020-03-26
  • 打赏
  • 举报
回复
引用 9 楼 watch_264 的回复:
楼主问题解决了吗?对查询出来的数据,条件判断后,再进行分页? 我现在遇到这个问题 ,难受,求解答



条件判断为什么不放到sql里面呢?
如果必须放到内存里,那就把所有的户据查出来,然后自己在内存里分页吧,数据多可能会爆内存哦
watch_264 2020-03-25
  • 打赏
  • 举报
回复
楼主问题解决了吗?对查询出来的数据,条件判断后,再进行分页? 我现在遇到这个问题 ,难受,求解答
jncoder 2020-03-10
  • 打赏
  • 举报
回复
还在用PageHelper ?试试 [github sqlhelper](https://github.com/fangjinuo/sqlhelper)吧,
1)支持几乎所有的关系数据库,包括所有的国产数据库。
2)支持mybatis, mybatisplus, Spring-JDBC,Apache Commons-DBUtils, jfinal, mango, ebean 等数据库操作框架。
3)可以无缝从PageHelper切换过去,不需要修改代码
4) 自动识别数据库,0配置,支持多种数据库同时操作
5)支持自动转义 Like 子句参数
6)支持多种自定义排序方式
7)支持通用 批量操作
8)支持dump DDL
9) 支持子查询分页
10) 充分利用PreparedStatement,比pagehelper更高效
11)支持与Spring,SpringBoot快速集成
12)更多特性等待着你
wyj925458224 2020-02-18
  • 打赏
  • 举报
回复
这种只能手动构造pageInfo了
代码间的舞者 2019-11-07
  • 打赏
  • 举报
回复
remove后得到的list,应该要重新赋值的。

楼主贴上来这段代码是有问题的。要么你的代码不全,要么就是你的业务逻辑不对。
戎码一生灬 2019-11-04
  • 打赏
  • 举报
回复
加QQ787930339
¥小添添¥ 2019-11-04
  • 打赏
  • 举报
回复
引用 1 楼 James灬Gosling 的回复:
这样写不对的
那应该怎么写哈 ? 求帮助
戎码一生灬 2019-11-04
  • 打赏
  • 举报
回复
这样写不对的

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧