分页工具类

PageHelper插件分页特点:

               只需要你开启分页(就是你指定当前页和每页要显示的条数)----再提供一些数据即可,下面介绍用法。

本章介绍在Maven环境下使用的方法

第一步:在pom.xml配置文件中导入如下依赖

 <!--mybatis分页插件的使用-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.0.2</version>
        </dependency>

第二步:一般情况下在mybatis核心配置文件sqlMapConfig.xml中引入分页插件已经封装好的一个分页类如下:

注意:在配置文件中放配置信息时是有先后顺序的,你需要将它放到别名--或者其它的东西后面。

 <plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
    </plugin>
    </plugins>

第三步:开发分为三层: controller(web层)接收页面的请求参数等,贴下我的分页代码和简单的注释如下:

  //商品列表展示---
    @RequestMapping("/queryProductList")
    //商品id   级别   model域  搜索框  当前页
    public  String queryProductList(Integer category,Integer type,Model model,String keyWord,Integer currentPage){
       //封装一个pager对象
        if (currentPage ==null){
            currentPage =1;
        }
        //查询数据
        List<Product> product= productIndexService.findProductById(category,type,keyWord,currentPage,CLUtils.PAGE_SIZE);
       //交给插件进行管理分配分页信息
        PageInfo<Product> pageInfo = new PageInfo<>(product);
//        if (category == null){
//           category=-1;
//           type=-1;
//        }
        //每次点击时访问
        String url="queryProductList.action?category="+category+"+&type="+type;
        long total = pageInfo.getTotal();//获得总条数
        int pages = pageInfo.getPages();//获得总页数
        model.addAttribute("total",total);
        Pager pager=new Pager(pages,url,currentPage);//封装的一个类
       model.addAttribute("pp",product);
       model.addAttribute("pager",pager);//放入域中
        return  "/jsp/pre/product/queryProductList.jsp";
    }

 第四步:service开启分页仅一行代码即可

 //开启分页  当前页 每页显示的条数
PageHelper.startPage(currentPage, pageSize);

另外附上分页插件的一些代码的意思:

//当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;
    //排序
    private String orderBy;
    //总记录数
    private long total;
    //总页数
    private int pages;
    //结果集
    private List<T> list;
    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"

    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;


    //第一页
    private int firstPage;
    //前一页
    private int prePage;
    //下一页
    private int nextPage;
    //最后一页
    private int lastPage;

    //是否为第一页
    private boolean isFirstPage = false;
    //是否为最后一页
    private boolean isLastPage = false;
    //是否有前一页
    private boolean hasPreviousPage = false;
    //是否有下一页
    private boolean hasNextPage = false;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;

自定义分页:

public class PageFullUtil<T> {
    //当前页
    private int Thispage;
    //每页显示的条数
    private int EverySize;
    //总条数
    private int NumberCount;
    //数据集合
    private List<T> NumberList;
    //总页数
    private int pageSum;

    public PageFullUtil(int thispage, int everySize, List<T> numberList) {
        this.Thispage = thispage;
        this.EverySize = everySize;
        //总条数
        this.NumberCount=numberList.size();
        //分页数据根据(当前页,每页显示的条数)得到要显示的数据
        //索引=(当前页-1)*每页显示的条数   
        //每页实时显示的数据 利用 集合封装的方法sublist
        this.NumberList =numberList.subList ((thispage-1)*everySize,((thispage-1)*everySize+everySize)<numberList.size()?((thispage-1)*everySize+everySize):numberList.size());
        //总页数
        this.pageSum=numberList.size()%everySize==0?numberList.size()/everySize:(numberList.size()/everySize)+1;
    }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值