java分页实现

import java.util.List;
/***
 * VO: 封装当前页数据(记录信息和分页信息)
 * @author 胡r
 * @param <T>
 */
public class PageObject<T> {
	/**每页显示的记录*/
	private List<T> records;
	/**总页数*/
	private int pageCount;
	/**总记录数*/
	private int rowCount;
	/**当前页面大小*/
	private int pageSize=3;
	/**当前页的页码*/
	private int pageCurrent=1;
	
	public List<T> getRecords() {
		return records;
	}
	public void setRecords(List<T> records) {
		this.records = records;
	}
	public int getPageCount() {
        //或者用return (int)Math.ceil(rowCount*1.0/pagSize);
		pageCount=rowCount/pageSize;
		if(rowCount%pageSize!=0)pageCount++;
		return pageCount;
	}
	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}
	public int getRowCount() {
		return rowCount;
	}
	public void setRowCount(int rowCount) {
		this.rowCount = rowCount;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageCurrent() {
		return pageCurrent;
	}
	public void setPageCurrent(int pageCurrent) {
		this.pageCurrent = pageCurrent;
	}
}
	//业务层方法
   @Override
	public PageObject<SysConfig> findPageObjects(
			Integer pageCurrent,String name) {
		//1.查询总记录数
		int rowCount=sysConfigDao.getRowCount(name);
		if(rowCount==0)
		throw new ServiceException("没有记录");
	    //2.查询当前页记录
		//2.1定义页面大小(每页最多现实多少条记录)
		int pageSize=3;
		//2.2计算当前页位置
		if(pageCurrent==null||pageCurrent<=0)
		throw new ServiceException("当前页码不合法");

		int startIndex=(pageCurrent-1)*pageSize;
		//2.3查询当前数据
		List<SysConfig> list=
		sysConfigDao.findPageObjects(startIndex,pageSize,name);
		//3.封装数据
		PageObject<SysConfig> pageObject=new PageObject<>();
		pageObject.setRecords(list);
		pageObject.setRowCount(rowCount);
		pageObject.setPageSize(pageSize);
		pageObject.setPageCurrent(pageCurrent);

		return pageObject;
	}


<sql id="pageWhere">
        <where>
         <if test="name!=null and name!=''">
            name like concat("%",#{name},"%")
         </if>
       </where>
    </sql>
    
    <select id="findPageObjects" 
            resultType="sysConfig">
       select * 
       from sys_configs
       <include refid="pageWhere"/>
       order by createdTime desc
       limit #{startIndex},#{pageSize}
    </select>
    
    <select id="getRowCount"
            resultType="int">
           select count(*)
           from sys_configs
           <include refid="pageWhere"/>
    </select>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值