首页 > 其他分享 >pageinfo-只能读取当前条数不能获取总条数

pageinfo-只能读取当前条数不能获取总条数

时间:2023-08-16 11:46:09浏览次数:32  
标签:读取 credits list List page 条数 pageinfo new PageInfo

pageInfo 的 total 属性是当前页记录数,如何配置使 total 设置成总记录数

	PageHelper.startPage(page, pageSize);

        LambdaQueryWrapper<Credit> queryWrapper = new QueryWrapper<Credit>().
                lambda().eq(Credit::getUserId, dto.getUid());



        List<Credit> credits = this.baseMapper.selectList(queryWrapper);


        List<CreditsDto> infoDtos = credits.stream().map(item -> {
            CreditsDto manageInfoDto = new CreditsDto();
            BeanUtils.copyProperties(item, manageInfoDto);
            return manageInfoDto;

        }).collect(Collectors.toList());

        PageInfo<CreditsDto> pageInfoVo = new PageInfo<>(credits);
        return pageInfoVo;

分析原因


到同样的问题,各种配置无果后,发现代码寄几写的有问题。是PageInfo构造参数传了List实例的原因,一定要传Page实例

解决方案:
Page page = PageHelper.startPage(xx,xx);
// todo:your query
PageInfo pageInfo = new PageInfo<>(page);
!!!重点这里:page 参数一定要传Page的实例,才会得到正确的total,传List的实例会调用size();

查看了源码才知道:
public PageSerializable(List list) {
this.list = list;
if(list instanceof Page){
this.total = ((Page)list).getTotal();
} else {
this.total = list.size(); //!!!如果传List的实例,这里调用的了size
}
}

点击查看代码
 		PageHelper.startPage(page, pageSize);

        LambdaQueryWrapper<Credit> queryWrapper = new QueryWrapper<Credit>().
                lambda().eq(Credit::getUserId, dto.getUid());



        List<Credit> credits = this.baseMapper.selectList(queryWrapper);
		// 1.在此处修改接收page参数
        PageInfo<Credit> pageInfo = new PageInfo<>(credits);

        List<CreditsDto> infoDtos = credits.stream().map(item -> {
            CreditsDto manageInfoDto = new CreditsDto();
            BeanUtils.copyProperties(item, manageInfoDto);
            return manageInfoDto;

        }).collect(Collectors.toList());

        PageInfo<CreditsDto> pageInfoVo = new PageInfo<>(infoDtos);
		// 2.在此处page 信息复制到 vo page
        //entity page 信息复制到 vo page
        BeanUtils.copyProperties(pageInfo ,pageInfoVo );
        return pageInfoVo;

参考:
https://github.com/pagehelper/pagehelper-spring-boot/issues/21

https://blog.csdn.net/lzh754413563/article/details/105110324?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2-105110324-blog-96873360.235^v38^pc_relevant_sort&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2-105110324-blog-96873360.235^v38^pc_relevant_sort&utm_relevant_index=5

标签:读取,credits,list,List,page,条数,pageinfo,new,PageInfo
From: https://www.cnblogs.com/d0minic/p/17633606.html

相关文章

  • Python 如何自动遍历文件下所有的文件,然后再对每一个文件夹读取里面的csv文件
    Python如何自动遍历文件下所有的文件,然后再对每一个文件夹读取里面的csv文件:代码:importosimportcsv#设置要遍历的文件夹路径folder_path="your_folder_path"#遍历文件夹forroot,dirs,filesinos.walk(folder_path):#遍历当前文件夹下的所有文件for......
  • 在Angular项目中如何读取json文件呢?
    直接进入主题,我们的最终目得是要读取文件,那么首先我们需要先创建文件,第一步:创建我们今天所需要在assets创建需要读取的文件Message.json,如下:[{"id":"E0001","msg":"{0}の取得に失敗しました。"},{"id":"E0002",&quo......
  • 解析EFL文件中符号表读取
    符号表表头Linux中使用指令查看完整读取elf文件readelf-aexample.elfNum:ValueSizeTypeBindVisNdxName代表含义Num符号编号Value符号值,取决于上下文Size符号值Type符号类型,例如函数、对象、文件(源文件名称)、节(内存节)或未指定类型......
  • while读取文件 Shell中while循环的陷阱, 变量实效, 无法赋值变量
     在写while循环的时候,发现了一个问题,在while循环内部对变量赋值、定义变量、数组定义等等环境,在循环外面失效。一个简单的测试脚本如下:#!/bin/bashecho"abcxyz"|whilereadlinedonew_var=$linedoneechonew_varisnull:$new_var? 执行结果证明,$new_v......
  • 2024年秋招赛码网刷题-判断奇偶数、读取未给出行列数的矩阵
    1defis_even(n):2return1ifn%2==0else034n=int(input())56result=is_even(n)7print(result)#最后一行不能用return因为return只能在函数内部使用。在顶层代码中用return不合法 ......
  • NET web api 利用NPOI 读取excel
    安装NPOI`[HttpPost("users/upload")]publicasyncTaskUpload(IFormFilefile){if(file==null||file.Length==0)returnthis.BadRequest("文件未来上传");varapi_result=newList<string>();//文件......
  • VTK 实例12:读取PNG图像并显示
    1#include"vtkAutoInit.h"2VTK_MODULE_INIT(vtkRenderingOpenGL2);3VTK_MODULE_INIT(vtkInteractionStyle);45#include<vtkPNGReader.h>//PNG读取类6#include<vtkImageViewer.h>//显示2D图像类7#include<vtkRenderWindowInteractor......
  • VTK 实例11:读取BMP图像并显示
    窗宽(WindowWidth):表示所显示信号强度值的范围(CT图像上所包含的CT值范围)窗位(WindowLevel):又称窗水平。窗位是指窗宽上下限的平均数(窗位的高低影响图像的亮度)例如:窗宽为300H,当窗位是0H时,其CT值范围为-150H~0H~+150H;如窗位是+40H时,则CT值范围为-110H~+40H~+190H。通常欲观察某一组织的......
  • C语言教程:逐行读取数字的方法
    C语言教程:逐行读取数字的方法在C语言的编程开发中,经常需要处理字符串或文本文件,并从中提取出数字。本文将介绍逐行读取数字的方法,帮助初学者更好地理解和运用。C语言逐行读取数字的方法一、引言数字在计算机编程中扮演着重要的角色,应用广泛。而在处理字符串或文本文件时,需要......
  • msr读取CPU温度
    一MSR寄存器介绍MSR寄存器简介MSR(ModelSpecificRegister)是一类x86CPU提供的特殊寄存器,可以用来存储各种模型特定的数据,如配置、状态等信息。温度相关MSR寄存器在IntelCPU中,和温度检测相关的MSR寄存器主要有:IA32_THERM_STATUS(0x19C):包含温度数据IA32_TEMPERATURE_TA......