zoukankan      html  css  js  c++  java
  • 通过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();
    

      

  • 相关阅读:
    windows2003 如何配置ASP网站
    如何在asp.net中获取GridView隐藏列的值?
    GridView.RowCommand 事件中获取当前行的信息
    模块导入导出
    API / DOM
    HTTP(搁置)
    npm
    链接(跳转)<routerlink> 和 路由实例Router
    elementui
    vuex
  • 原文地址:https://www.cnblogs.com/czq520/p/12551013.html
Copyright © 2011-2022 走看看