zoukankan      html  css  js  c++  java
  • Mybatis中的PageHelper分页插件使用详解

    PageHelper使用辅助文档

    https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

    使用例子:

    @RequestMapping(value= {"list",""})
        private String  list(@RequestParam(value="pn",defaultValue="1")Integer pn,Order order,HttpServletRequest request,HttpServletResponse response,Model model) {
            // startPage(pn,3)的含义是pn 是当前的页码   其中的3是每一页显示的条数
         PageHelper.startPage(pn,
    3);
         //这是和数据库进行交互的一个方法 List
    <Order> orderList = orderService.getOrdersByFactor(order);
         // 创建PageInfo对象使用的是他的含有两个参数的构造器,第一个参数是查询出的结果列表List,第二个参数是连续显示的页码,比如现在处于第二页,则连续显示的页码就是:1-2-3      //如果 现在处于第六页的话,页面显示的页码为:5-6-7
    PageInfo page
    = new PageInfo(orderList,3); model.addAttribute("page", page); //model.addAttribute("orderList", orderList); return "modules/goodMan/orderList2"; }

    上述在查询完毕订单列表之后,用pageInfo封装之后,这个对象是特别的有用的,内部含有好多的属性,可以让我们通过Model对象放到Response域中传回前台,进行利用

    常用的PageInfo对象的属性如下

    public class PageInfo<T> implements Serializable {
        private static final long serialVersionUID = 1L;
        //当前页
        private int pageNum;
        //每页的数量
        private int pageSize;
        //当前页的数量
        private int size;
    
        //由于startRow和endRow不常用,这里说个具体的用法
        //可以在页面中"显示startRow到endRow 共size条数据"
    
        //当前页面第一个元素在数据库中的行号
        private int startRow;
        //当前页面最后一个元素在数据库中的行号
        private int endRow;
        //总记录数
        private long total;
        //总页数
        private int pages;
        //结果集
        private List<T> list;
    
        //前一页
        private int prePage;
        //下一页
        private int nextPage;
    
        //是否为第一页
        private boolean isFirstPage = false;
        //是否为最后一页
        private boolean isLastPage = false;
        //是否有前一页
        private boolean hasPreviousPage = false;
        //是否有下一页
        private boolean hasNextPage = false;
        //导航页码数
        private int navigatePages;
        //所有导航页号
        private int[] navigatepageNums;
        //导航条上的第一页
        private int navigateFirstPage;
        //导航条上的最后一页
        private int navigateLastPage;

    PageInfo的三种构造器

    通过源码可以看出来,在PageInfo这个类中,包含3个构造方法,
    1.无参  
    public PageInfo() {
        }
    2.一个参数
    public PageInfo(List<T> list) {
            this(list, 8);
        }
    3.两个参数,这里第一个参数就是传递的List<Employee> emps结果集,内部会进行自动的包装
     public PageInfo(List<T> list, int navigatePages) {....}

    当然在使用PageInfo插件之前需要在项目中对其依赖进行引入

    1、引入到pom.xml文件中

            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>5.0.0</version>
            </dependency>

    1、到mybatis的配置文件中对pageHelper插件进行注册

    mybatis-config.xml

        <!-- 插件配置 --> <!--@zjh20200407 分页插件的注册  -->
        <plugins>
              <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
        </plugins>
        
  • 相关阅读:
    简单工厂模式
    原型模式
    特性Attribute
    MVC_Route层层深入
    异步Async
    sql-connectionStrings
    观察者模式(利用委托)
    SqlServer_存储过程
    c语言----程序记录
    c语言基础笔记
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/12658942.html
Copyright © 2011-2022 走看看