Mybatis中的PageHelper分页插件使用详解

使用例子:

@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>
    

 

上一篇:ssm中使用pagehelper


下一篇:mybatis配合pagehelper分页助手查询