使用MyBatis分页插件实现分页

使用MyBatis分页插件实现分页
导入依赖
<dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>${pagehelper.version}</version>
</dependency>
使用
 @Override
    public PageInfo<BcStaff> findPage(PageQuery pageQuery) {
        // 使用mybatis分页插件,一点要在查询之前使用
        PageHelper.startPage(pageQuery.getPage(),pageQuery.getRows());
        List<BcStaff> bcStaffList = this.bcStaffMapper.selectByExample(null);
        // 封装PageInfo对象,返回集合
        PageInfo<BcStaff> pageInfo = new PageInfo<>(bcStaffList);
        return pageInfo;
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PageHelper中的startPage方法

在这里插入图片描述

service层
 @Override
    public PageInfo<BcStaff> findPage(PageQuery pageQuery) {
        // 使用mybatis分页插件,一点要在查询之前使用
        PageHelper.startPage(pageQuery.getPage(),pageQuery.getRows()); // 页数,每页记录数
        // 调用dao层方法
        List<BcStaff> bcStaffList = this.bcStaffMapper.selectByExample(null);
        // 非洲PageInfo对象,返回bcStaffList
        PageInfo<BcStaff> pageInfo = new PageInfo<>(bcStaffList);
        return pageInfo;
    }
PageInfo代码

public class PageInfo<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private int pageNum;
    private int pageSize;
    private int size;
    private int startRow;
    private int endRow;
    private long total;
    private int pages;
    private List<T> list;
    private int firstPage;
    private int prePage;
    private int nextPage;
    private int lastPage;
    private boolean isFirstPage;
    private boolean isLastPage;
    private boolean hasPreviousPage;
    private boolean hasNextPage;
    private int navigatePages;
    private int[] navigatepageNums;

    public PageInfo() {
        this.isFirstPage = false;
        this.isLastPage = false;
        this.hasPreviousPage = false;
        this.hasNextPage = false;
    }

    public PageInfo(List<T> list) {
        this(list, 8);
    }

    public PageInfo(List<T> list, int navigatePages) {
        this.isFirstPage = false;
        this.isLastPage = false;
        this.hasPreviousPage = false;
        this.hasNextPage = false;
        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();
            if (this.size == 0) {
                this.startRow = 0;
                this.endRow = 0;
            } else {
                this.startRow = page.getStartRow() + 1;
                this.endRow = this.startRow - 1 + this.size;
            }

            this.navigatePages = navigatePages;
            this.calcNavigatepageNums();
            this.calcPage();
            this.judgePageBoudary();
        }

    }

    private void calcNavigatepageNums() {
        int i;
        if (this.pages <= this.navigatePages) {
            this.navigatepageNums = new int[this.pages];

            for(i = 0; i < this.pages; ++i) {
                this.navigatepageNums[i] = i + 1;
            }
        } else {
            this.navigatepageNums = new int[this.navigatePages];
            i = this.pageNum - this.navigatePages / 2;
            int endNum = this.pageNum + this.navigatePages / 2;
            int i;
            if (i < 1) {
                i = 1;

                for(i = 0; i < this.navigatePages; ++i) {
                    this.navigatepageNums[i] = i++;
                }
            } else if (endNum > this.pages) {
                endNum = this.pages;

                for(i = this.navigatePages - 1; i >= 0; --i) {
                    this.navigatepageNums[i] = endNum--;
                }
            } else {
                for(i = 0; i < this.navigatePages; ++i) {
                    this.navigatepageNums[i] = i++;
                }
            }
        }

    }

    private void calcPage() {
        if (this.navigatepageNums != null && this.navigatepageNums.length > 0) {
            this.firstPage = this.navigatepageNums[0];
            this.lastPage = this.navigatepageNums[this.navigatepageNums.length - 1];
            if (this.pageNum > 1) {
                this.prePage = this.pageNum - 1;
            }

            if (this.pageNum < this.pages) {
                this.nextPage = this.pageNum + 1;
            }
        }

    }

    private void judgePageBoudary() {
        this.isFirstPage = this.pageNum == 1;
        this.isLastPage = this.pageNum == this.pages;
        this.hasPreviousPage = this.pageNum > 1;
        this.hasNextPage = this.pageNum < this.pages;
    }

所有分页的方法,pageInfo已经写好了

jsp页面
// 取派员信息表格
			$('#grid').datagrid({
				iconCls : 'icon-forward',
				fit : true,
				border : false,
				rownumbers : true,
				striped : true,
				pageList: [10,20,50],
				pagination : true,
				toolbar : toolbar,
				url : "${pageContext.request.contextPath }/bcStaff/findPage.action",
				idField : 'id',
				columns : columns,
				//singleSelect: true,
				onDblClickRow : doDblClickRow
			});
controller层
 // 列表显示
    @RequestMapping(value = "findPage.action")
    @ResponseBody
    public Map<String,Object>  findPage(PageQuery pageQuery){

        PageInfo<BcStaff> page = this.bcStaffService.findPage(pageQuery);
        HashMap<String, Object> map = new HashMap<>();
        map.put("total",page.getTotal());
        map.put("rows",page.getList());
        return map;
    }

效果图:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值