Mybatis分页插件PageHelper

对于Mybatis,进行分页,网上有分页的插件,叫PageHelper,下载后,能够方便的实现分页。

1、下载jar包

如果是使用Maven工程,可直接引入依赖


    com.github.pagehelper
    pagehelper
    4.1.4

或者直接去下载jar包

2、配置Mybatis的配置文件configuration.xml

  
   
    
        
     
      
        
      
        
        
    
  

值得注意的一点的是,mybatis的配置文件中,元素的顺序是有要求的,不然会报错,元素的顺序:

 元素顺序:

properties

settings

typeAliases

typeHandlers

objectFactory

objectWrapperFactory

plugins

environments

databaseIdProvider

mappers

3、在执行sql查询语句前,加上下面这句话,即可进行分页限制。

public PageBean SelectPage(int currentpage,int counts)
    {
         List list=null;
        try {
            sqlSession=dbAccess.getSqlSession();
            IVOrdercancel ivOrdercancel=sqlSession.getMapper(IVOrdercancel.class);
//加上这句,相当于select * from tbname limit currentpage,counts;
            PageHelper.startPage(currentpage, counts);
            list=ivOrdercancel.select_vordercancel();
            
            sqlSession.commit();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally
        {
            sqlSession.close();
        }
        return new PageBean(list);
    }

加上PageHelper.startPage(currentpage, counts);后的原理,其实就是在执行SQL语句的时候,对其进行拦截,对sql加上拼接了后面的limit 。

4、对查询后的数据进行封装。

package util;

import java.io.Serializable;
import java.util.List;

import com.github.pagehelper.Page;

public class PageBean implements Serializable {
  
    private long total;        //总记录数
    private List list;    //结果集
    private int pageNum;    // 第几页
    private int pageSize;    // 每页记录数
    private int pages;        // 总页数
    private int size;        // 当前页的数量 <= pageSize,该属性来自ArrayList的size属性
    
    /**
     * 包装Page对象,因为直接返回Page对象,在JSON处理以及其他情况下会被当成List来处理,
     * 而出现一些问题。
     * @param list          page结果
     * @param navigatePages 页码数量
     */
    public PageBean(List list) {
        
        if (list instanceof Page) {
            Page page = (Page) list;
            this.pageNum = page.getPageNum();
            this.pageSize = page.getPageSize();
            this.total = page.getTotal();
            this.pages = page.getPages();
            this.list = page;
            this.size = page.size();
        }
    }

    public long getTotal() {
        return total;
    }

    public void setTotal(long total) {
        this.total = total;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getPages() {
        return pages;
    }

    public void setPages(int pages) {
        this.pages = pages;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
    
}


完毕!

你可能感兴趣的:(Mybatis分页插件PageHelper)