使用springMVC+MyBatis的分页功能

  1. 创建一个保存页的相关数据:
package com.xibao.ssm.po;

public class Page {

    private int pageSize = 30;// 每页当中显示的数目,这个可以自定义数目

    private int count;// 总共有多少调数据
    private String pageNum;//当前页码

    private int pageCount = 0;// 页数的和

    private int beg;//开始读取的下标
    private int end;//总共读取的数量

    //设置页信息
    public void setPageInfo(String pageNum,int count ){
        this.pageNum = pageNum;
        this.count = count;
        if(count%pageSize==0){
            pageCount = count/pageSize;
        }else{
            pageCount = count/pageSize+1;
        }
         beg = (Integer.parseInt(pageNum)-1)*pageSize;
         end =  pageSize;
    }

    public int getPageSize() {
        return pageSize;
    }

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

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getPageNum() {
        return pageNum;
    }

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

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }

    public int getBeg() {
        return beg;
    }

    public void setBeg(int beg) {
        this.beg = beg;
    }

    public int getEnd() {
        return end;
    }

    public void setEnd(int end) {
        this.end = end;
    }

}
  1. MyBatis中需要用到两个sql语句才能实现分页的功能
    第一个是查询出总共有多少数据:
    select count(*) from 表名
    注意:这个sql语句的结果是int类型的值
    第二个是进行分页查询,采用的是mysql中limit
    select * from 表名 limit beg,end;
    beg和end都是为int类型的值,beg是为要从第几条开始读取数据,end是总共读取多少条数据
    例如:
    select * from 表名 limit 0,3;
    就是从第一条开始读取,总共读取3条数据
    注意:beg的值是从0开始算
  2. Controller类进行实现分页功能
        /**
         * 分页
         * @param pagenum
         * @return
         */
        @RequestMapping("/paging")
        public @ResponseBody List<Cabinet> paging(String pagenum){
            int count = cabinetService.selectCount();//获取总数量

            Page page = new Page();
            page.setPageInfo(pagenum, count);//设置页码等信息
            List<Cabinet> cabinets = cabinetService.selectLimit(page.getBeg(), page.getEnd());
            for(int i = 0;i<cabinets.size();i++){
                cabinets.get(i).setPage(page);
            }
            return cabinets;

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值