首页 > 其他分享 >自定义PageHelper分页工具

自定义PageHelper分页工具

时间:2024-07-12 08:57:39浏览次数:16  
标签:return 分页 自定义 报警 list PageHelper startIndex size

今天写了一个需要用到分页查询的需求

大概是这样的有一张项目表和一张报警表如下:

项目表:

报警表:

现在我就是要根据这个项目名称,报警类型和报警时间来查询报警列表.

项目可以模糊查询,看似是很简单的一个需求,但是我遇到了一个问题

我的大概思路就是先用项目名称去项目表里模糊查询项目信息,返回项目id,然后去报警表里根据项目id,报警类型,报警时间全部都满足最后返回完整的报警信息.

但是我遇到的问题就是根据项目名称模糊查项目表的时候查到了多条数据,这样我只能通过一个循环来把每个返回的项目id和传的报警类型报警时间去报警表里查,大概操作如下:

最后我新建了一个list集合把每次循环查到的数据都添加进去返回.

问题来了,当我用pagehelper进行分页的时候,我本来是这样写的

计算出来的total总是不对,显示的是展示的数据的数量反正就是一直显示不对

最后干脆不用别人封装好的了,直接手写一个分页工具,对最后的集合进行分页

        

     // 手动实现分页逻辑
          List<ZjDeviceAlarm> pageList = getPage(zjDeviceAlarms,             
            zjDeviceAlarmParam.getPage(), zjDeviceAlarmParam.getSize());
            // 使用PageInfo包装返回结果
            PageInfo<ZjDeviceAlarm> pageInfo = new PageInfo<>(pageList);
            pageInfo.setTotal(zjDeviceAlarms.size()); // 总条数
            return pageInfo;
 /**
     * 手动分页
     * @param list
     * @param page
     * @param size
     * @return
     */
    private List<ZjDeviceAlarm> getPage(List<ZjDeviceAlarm> list, int page, int size) {
        int startIndex = (page - 1) * size;
        if (startIndex >= list.size()) {
            return new ArrayList<>(); // 如果起始索引超出集合范围,返回空列表
        }
        int endIndex = Math.min(startIndex + size, list.size());
        return list.subList(startIndex, endIndex);
    }

这样一来就方便多了

标签:return,分页,自定义,报警,list,PageHelper,startIndex,size
From: https://blog.csdn.net/djs6543/article/details/140363501

相关文章

  • 流式查询1. mybatis的游标Cursor,分页大数据查询
    流式查询流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用可以通过迭代器每次取一条查询结果。流式查询的好处是能够降低内存使用。例如我们想要从数据库取1000万条记录而又没有足够的内存时,就不得不分页查询。而分页查询就需要我们按照顺序查询并设置一个参......
  • vue简单分页
    constapp={data(){return{info:[],//存储题目详情数组currentPage:1,//当前页码pageSize:3,//每页显示的题目数量sjid:sjid};},......
  • Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和
    场景存储过程存储过程是一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与己定义好的存储过程的功能相同的服务时,......
  • 基于bootstrap与jQuery实现的分页功能(多余部分省略号代替)
    基于bootstrap与jQuery实现的分页功能(多余部分省略号代替) <navaria-label='Pagenavigation'id='nav_navigation'></nav><scripttype='text/javascript'>/***刷新页码方法*@paramtotalPage*@paramcurrentPage*/functionrefres......
  • Perl词法作用域:自定义编程环境的构建术
    ......
  • WHAT - Tailwind 样式方案(不写任何自定义样式)
    目录一、官网二、设计理念三、示例DesignSystem一、官网https://tailwindcss.com/TailwindCSSworksbyscanningallofyourHTMLfiles,JavaScriptcomponents,andanyothertemplatesforclassnames,generatingthecorrespondingstylesandthenwrit......
  • Android自定义View游戏方向轮盘转向盘方向盘
    在画之前做一些规划,把View分成6份:一份就是小圆的半径,两份就是大圆的半径,大圆的圆心始终是中心,小圆位置根据手指变化,当我们手指超出大圆的范围时候就把他固定在大圆的边缘上(利用相似三角形来计算位置)。privatevoidcomputePosition(floatx,floaty){float......
  • 打造个性化科学工具箱:使用conda-build自定义软件包
    打造个性化科学工具箱:使用conda-build自定义软件包引言Conda是一个强大的包管理系统,广泛用于Python社区,尤其在数据科学和机器学习领域。除了安装现成的包,Conda还允许用户通过conda-build工具构建和分享自己的软件包。本文将详细介绍如何在Conda环境中使用conda-build构建......
  • 24、Django-网站分页功能-Pagintor类
    -Django提供了Paginator类可以方便的实现分页功能-Painator类位于django.core.pagintor模块中负责分页数据整体的管理对象的构造方法:paginator=Paginator(object_list,per_page)-参数:-object_list:需要分页的数据的对象列表-数据的个数-......
  • 一起了解自定义流程表单开发的主要优势
    当前,想要进行流程化办公,应用专业的软件平台产品是非常重要的。低代码技术平台拥有可视化操作界面、很灵活、易维护等优势特点,可以应用于很多中小型流程化办公中。那么,低代码技术平台、自定义流程表单开发的主要优势特点表现在哪来?跟着小编的节奏,一起来了解它们的主要优势吧。什么......