@Override public PageInfo<FleetData> selectMarkAndSelfIdOne(CommonQo commonQo) { //我这里PageSize要是传5 PageHelper.startPage(commonQo.getPageNum(),commonQo.getPageSize()); List<FleetData> fleetData = fleetDataMapper.selectMarkAndSelfIdOne(); //debug断点 PageInfo<FleetData> pageInfo = new PageInfo<>(fleetData); List<FleetData> fleetDataList = new ArrayList<>(); System.out.println(fleetData.size()); //for循环就循环5 for (FleetData fleetData2: fleetData) { Long userId= fleetData2.getId();//获得用户id //System.out.println("用户id======="+ userId ); List<FleetBill> fleetBills = fleetBillMapper.selectBySelfId(userId); if (fleetBills.size()>0){ for (FleetBill fleet:fleetBills) { Long userId1= fleet.getFleetId();//获得用户id //System.out.println("客户id======="+ userId1 ); } } else { fleetDataList.add(fleetData2); } } // PageInfo<FleetData> page= new PageInfo<>(fleetDataList); // BeanUtils.copyProperties(pageInfo,page); pageInfo.setList(fleetDataList); return pageInfo; }
你可以这里不分页,把全部查询出来,得到最后list再分页
//PageHelper.startPage(commonQo.getPageNum(),commonQo.getPageSize());
List<FleetData> fleetData = fleetDataMapper.selectMarkAndSelfIdOne();
当然了啊,查询出来的条数就是pageSize控制的
pageSize是控制当前页显示的条数。你传的是5,那么查询出来的记录就是5条。
PageHelper 是一个分页插件。需要传入参数,pageNum,pageSize 如果你传入的参数分别是10,5,表示第10页,每页5条数据。 那么 fleetDataMapper.selectMarkAndSelfIdOne();的sql 末尾会默认加上limit 50,5,也就是查询结果最多返回5条数据。
//未分页
select * from marker
//分页后
select * from marker limit 50,5
现在是分页的是这个里面的数据 :
List<FleetData> fleetData = fleetDataMapper.selectMarkAndSelfIdOne();
但是我需要分页这个list中的
List<FleetData> fleetDataList = new ArrayList<>();
应为我下面需要做判断 取出我需要的东西存放都这个list中 然后在做分页 现在的问题是我取出来的total不对
你是不是没有弄清这个分页啊。建议先了解一下真假分页。你理解的是全部查询出来,java做处理取数据;实际是sql直接查询你需要的数据,没有查询全部。
谢谢各位大佬 解决了 我需要的是把所有的东西查出来之后进行处理再去分页 可是他提前做了分页 最后导致total总是不正确
https://www.cnblogs.com/cuijinlong/p/12786815.html
所有的处理完之后直接对list进行分页
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632