MySQL 之mybatis分页使用多个Page

MySQL 之mybatis分页使用多个Page


有时候,对于一个页面进行查询,可能会查询多个不同的sql,此时用一个Page已经不合适了,所以需要使用多个Page进行。
下面用2个Page举例记录。

服务层实现方法:

public Page findInfoByPage(int pageNo, int pageSize, ParamVo paramVo) {
	List<InfoVo> resList = new ArrayList<>();
	Page stuPage = new Page();
	stuPage.setPageNo(pageNo);
    stuPage.setPageSize(pageSize);
    StudentExample stuExample = new StudentExample();
	List<Student> students = studentDao.selectByPage(stuExample, stuPage);
	// 把 students 数据插入到返回的List中
	// resList.addAll(students);
	
	Page tchPage = new Page();
	tchPage.setPageNo(pageNo);
    tchPage.setPageSize(pageSize - resList.size());
    TeacherExample tchExample = new TeacherExample();
	List<Teacher> teachers = TeacherDao.selectByPage(tchExample, tchPage);
	// 把 teachers 数据插入到返回的List中
	// resList.addAll(teachers );
	
	Page resPage = new Page();
	int stuTotalRecord = stuPage.getTotalRecord();
	int tchTotalRecord = tchPage.getTotalRecord();
	int totalRecord = stuTotalRecord + tchTotalRecord;
	resPage.setPageNo(pageNo);
	resPage.setPageSize(pageSize);
	resPage.setTotalRecord(totalRecord);
	resPage.setTotalPage(totalRecord / pageSize);
	resPage.setRecords(resList);
	return resPage;
}

Page类:

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

public class Page implements Serializable {
    private static final long serialVersionUID = 1L;
    private static int DEFAULT_COUNT = 20;
    private int pageSize;
    private int pageNo;
    private int totalPage;
    private int totalRecord;
    private List records;

    public Page() {
        this.pageSize = DEFAULT_COUNT;
        this.pageNo = 1;
        this.totalPage = 1;
    }

    public Page(int pageSize) {
        this();
        this.setPageSize(pageSize);
    }

    public Page(int pageSize, int recordNumber) {
        this.pageSize = DEFAULT_COUNT;
        this.pageNo = 1;
        this.totalPage = 1;
        this.setPageNo(pageSize);
        this.setTotal(recordNumber);
    }

    public Page(int pageSize, int pageNo, int recordNumber) {
        this.pageSize = DEFAULT_COUNT;
        this.pageNo = 1;
        this.totalPage = 1;
        this.setPageSize(pageSize);
        this.setPageNo(pageNo);
        this.setTotal(recordNumber);
    }

    public Page(int pageSize, int recordNumber, List records) {
        this(pageSize, recordNumber);
        this.records = records;
    }

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

    public void setPageNo(int pageNo) {
        if (pageNo < 1) {
            this.pageNo = 1;
        }
        this.pageNo = pageNo;
    }

    public void setTotal(int totalRecord) {
        if (totalRecord > 0) {
            int t = totalRecord / this.pageSize;
            int var10001;
            if (totalRecord % this.pageSize != 0) {
                ++t;
                var10001 = t;
            } else {
                var10001 = t;
            }

            this.totalPage = var10001;
            this.totalRecord = totalRecord;
        }
    }

    public int getCurrent() {
        return this.pageNo > this.totalPage ? this.totalPage : this.pageNo;
    }

    public int getTotalPage() {
        return this.totalPage;
    }

    public int getTotalRecord() {
        return this.totalRecord;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getPrePage() {
        return this.pageNo > 2 ? this.pageNo - 1 : 1;
    }

    public int getNextPage() {
        return this.pageNo < this.totalPage ? this.pageNo + 1 : this.totalPage;
    }

    public int getStartIndex() {
        return (this.pageNo - 1) * this.pageSize + 1;
    }

    public void setRecords(List obj) {
        this.records = obj;
    }

    public List getRecords() {
        return this.records;
    }

    public int getPageNo() {
        return this.pageNo;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public void setTotalRecord(int totalRecord) {
        if (totalRecord > 0) {
            int t = totalRecord / this.pageSize;
            int var10001;
            if (totalRecord % this.pageSize != 0) {
                ++t;
                var10001 = t;
            } else {
                var10001 = t;
            }
            this.totalPage = var10001;
            this.totalRecord = totalRecord;
        }
    }
}


若有不正之处,请谅解和批评指正,谢谢~
转载请标明:
https://blog.csdn.net/vihem/article/details/128305029

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值