MySql分页总结

关于MySql的分页问题
分页时,最好先抽象出一个类,来保存关于分页的一些信息,如:1、结果集 2、总记录数 3、总页数 4、每页显示多少条记录数 5、当前页号

要提高系统的效率,必须 禁止频繁的访问数据库,因此需要访问一次数据库就把所有的结果集查上来,然后 在程序中进行分页

现在抽象出一个PageModel类,用于保存关于分页的一些信息,代码如下:

package com.qidian.util;

import java.util.List;

/**
 * 封装分页逻辑
 * @author Administrator
 *
 */
public class PageModel<T> {

//结果集
private List<T> newslist;

//记录数
private int totalRecords;

//每页多少条数据
private int pageSize;

//第几页
private int pageNo;

/**

* @return 总页数
*/
public int getTotalPages() {
return
(totalRecords+pageSize-1)/pageSize; //记住
}

/**
* 首页
* @return
*/
public int getTopPageNo(){
return 1;
}

/**
* 上一页
* @return
*/
public int getBackPageNo(){
if(this.pageNo <= 1){
return 1;
}
return this.pageNo-1;
}

/**
* 下一页
* @return
*/
public int getNextPageNo(){
if(this.pageNo == getButtomPageNo()){
return getButtomPageNo();
}
return this.pageNo + 1;
}
/**
* 尾页
* @return
*/
public int getButtomPageNo(){
return getTotalPages();
}

public List<T> getNewslist() {
return newslist;
}

public void setNewslist(List<T> newslist) {
this.newslist = newslist;
}


public int getTotalRecords() {
return totalRecords;
}

public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}


public int getPageSize() {
return pageSize;
}

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

public int getPageNo() {
return pageNo;
}

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

}

在程序中分页时,我用的是<c:forEach>标签   关键的代码如下:
<c:forEach items="${pageModel.newslist}" var="news" begin="${(pageModel.pageNo-1)*pageModel.pageSize}" end="${((pageModel.pageNo-1)*pageModel.pageSize)+2}">
</c:forEach>
然后在循环体中写出需要显示的内容

仍然还有很多需要改进的地方,慢慢的来,这是做项目的时候的一些总结,以前没有碰到关于分页的相关知识,所以总结一下,以后慢慢的完善!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值