首页 > 其他分享 >pagehelper list数据处理后进行分页

pagehelper list数据处理后进行分页

时间:2022-08-24 08:44:19浏览次数:63  
标签:total PageHelper list deviceDTO Page 数据处理 pagehelper PageInfo

问题背景:PageHelper的分页只有在PageHelper.startPage(pageNum,pageSize)之后的数据库查询语句才起作用,原因是PageHelper的实现原理是在数据库查询过程中通过拦截器拦截处理。在我当前的项目中,需要对本地已经处理好的ArrayList进行分页。

方法有两种:

第一种

重新自定义PageInfo类,能解决问题,但是比较繁琐,不探究。

第二种(推荐)

直接用PageHelper的类来实现,代码如下:

/**
 * 分页查询
 */
public PageInfo<DeviceVO> queryDeviceVOPage(DeviceDTO deviceDTO) {
    List<DeviceVO> list = this.queryDeviceVOList(deviceDTO);
    //创建Page类
    Page<DeviceVO> page = new Page<DeviceVO>(deviceDTO.getNum(), deviceDTO.getSize());
    //为Page类中的total属性赋值
    int total = list.size();
    page.setTotal(total);
    //计算当前需要显示的数据下标起始值
    int startIndex = (deviceDTO.getNum() - 1) * deviceDTO.getSize();
    int endIndex = Math.min(startIndex + deviceDTO.getSize(), total);
    //从链表中截取需要显示的子链表,并加入到Page
    page.addAll(list.subList(startIndex, endIndex));
    //以Page创建PageInfo,并返回PageInfo
    return new PageInfo<>(page);
}

标签:total,PageHelper,list,deviceDTO,Page,数据处理,pagehelper,PageInfo
From: https://www.cnblogs.com/jspider/p/16618530.html

相关文章

  • Java-List集合字段求和函数
    一、FunctionCustom通用求和函数使用示例二、求和函数修订记录版本是否发布2020-01-25v1.0是一、FunctionCustom通用求和函数使用示例特点:简化代码......
  • CCGridPictureEditor与ListBox的冲突
    昨天发现在ide中,设计Listbox,由于Item多,需要上下滑动Listbox来完成设计,结果一滑动,整个ide就没反应了!刚才,才发现,原来是CCGridPictureEditor的问题,当设置RowType=rtSingleRow......
  • 初识ListView
    BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~SimpleAdapter:同......
  • Java集合-List
    1.Collection集合1.1集合体系结构【记忆】集合类的特点​ 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变集合类的体系图1.2Collection集合概......
  • 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况
    1.  安装JMeter及使用1.1下载JMeter登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi 1.2配置环境变量配置JMeter环境变量新建......
  • Redis中set和list的区别有哪些
    list和set的区别:1、List和Set都是接口继承于Collection接口。2、最大的不同就是List是可以重复的。而Set是不能重复的。(注意:元素虽然无放入顺序,但是元素在set中的位置是......
  • C#之List、Queue、Stack使用EnsureCapacity方法预设数组大小
    简介 List、Queue和Stack集合中的EnsureCapacity方法预设数组大小。为什么以及何时使用EnsureCapacity方法这里我们将首先了解为什么需要使用这种方法以及何时使......
  • java将list转为逗号隔开字符串
    1.只要不为空,就在后面添加逗号,最后再用subString()函数截取,去掉最后一位的逗号List<String>test=newArrayList<>();StringtestStrings="";test.add("test1");test......
  • 面经-LinkedList与ArrayList比较
    ArrayList:1.基于数组,需要连续内存2.随机访问快(根据下标访问)。(按照内容查询时ArrayList与LinkedList速率基本相同)3.尾部插入、删除性能好,其他部分插入、删除都会移动数据......
  • Jedis操作hash和Jedis操作list
    Jedis操作hash/***hash*/@Testpublicvoidtest3(){//1.获取连接Jedisjedis=newJedis();//如果使用空参构造,默认值"localhost",6379端口//存......