• 通过mybatis-plus的分页插件,实现分页


     

    简单查询的分页

      如果查询结果为单表查询,例如查询用户列表,则可以调用mybatis plus的自动生成的mapper中的selectPage()或者selectMapsPage()方法

      Page类的构造函数中第一个参数为当前查询第几页,第二个参数为每页的记录数。 

    image_1c4mrp2brphr1313asoset1bb155.png-21.4kB

     

    复杂查询的分页

      若查询结果是关联多个表的操作,则需要用到自定义的mapper,此时的分页操作也很简单,只需要给mapper的第一个参数设置为Page对象即可

      例如Guns中LogController中的查询操作日志列表,用的就是复杂查询的分页,我们可以看到在mybatis接口的第一个参数中,传递了Page对象,

      当mybatis执行此方法的时候,会被mybatis-plus的分页插件自动拦截到,并且把分页查询的结果返回到这个Page对象中!

      如下:

     image_1c4ms4v6sg343nu1tmq1u1o10j65i.png-28.4kB 

    获取前端表格插件传值

      前端表格用的Layui Table插件(https://www.layui.com/doc/modules/table.html,在前端执行查询时,插件会自动往后台传递分页参数,并且默认的格式如下,

    image_1db1m4rblj6hhs154ficc1puf9.png-25.2kB

      Layui Table会传递page(第几页)limit(每页条数)这两个参数,与之对应,后台封装了一个通用的接受分页参数的类LayuiPageFactory

      从而不用每次都来request.getParameter()这样接收参数,如下所示,

    public class LayuiPageFactory {
    
        public static Page defaultPage() {
            HttpServletRequest request = HttpContext.getRequest();
    
            //每页多少条数据
            int limit = Integer.valueOf(request.getParameter("limit"));
    
            //第几页
            int page = Integer.valueOf(request.getParameter("page"));
    
            return new Page(page, limit);
        }
    
        public static LayuiPageInfo createPageInfo(IPage page) {
            LayuiPageInfo result = new LayuiPageInfo();
            result.setCount(page.getTotal());
            result.setData(page.getRecords());
            return result;
        }
    
    }

      在后台代码中如需接收参数,构建分页Page对象的时候,只需如下这样一调用即可构建分页对象

    Page page = LayuiPageFactory.defaultPage();
    

      

  • 相关阅读:
    求一个二维数组的最大子矩阵
    在一整型数组中找到此数组中子数组和的最大值
    软件工程个人小项目:写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来
    Redis 为什么这么快?
    在netfarmerwork3.5版本的winform下执行string串中的代码
    c# 反射(Reflection)详解
    string,特殊的引用类型
    c#使用HashSet<T>集合去重
    c# .Net重试机制
    观察者模式
  • 原文地址:https://www.cnblogs.com/czq520/p/12551013.html
Copyright © 2020-2023  润新知