Hibernate分页的简单描述,思想以及实现方法。

分页其实就是前端向后端请求数据,请求带有参数,一个是第几页,一个是每页需要返回多少条数据。

后端可以建一个类,用来构建给前端返回的数据:

import java.util.List;

public class PageInfo {
	//每页多少条数据
	private int pageSize;
	//第几页
	private int pageNumber;
	//总共数据
	private int total;
	//查询的数据集合
//	private List<?> list;
	private List<List<?>> list;
	
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNumber() {
		return pageNumber;
	}
	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int total) {
		this.total = total;
	}
	public List<?> getList() {
		return list;
	}
	public void setList(List<List<?>> list) {
		this.list = list;
	}
}

类中包含的几个数据:

第几条数据,每页有多少条数据,这个两条数据是方便前端操作后再继续返回给后端调用新的数据。例如:下一页,就是在这两个数据的基础上计算得出的每页返回多少个(这个值可用来改变每页显示的数据量)数据,以及第几页。

数据列表,对应某个实体类,这是前端需要展示的数据。数据条数,用于在前端展示数据条数,以及用来判断最后一页不可以点击下一页,第一页不可以点击上一页。

DAO具体操作:

获取数据:

	public ArrayList<Test> getPageData(int pageSize, int pageNumber) {
		if (pageSize >= 0 && pageNumber >= 0) {
			String Hql = "from Test";
			Query querys = this.getCurrentSession().createQuery(Hql);
			querys.setFirstResult(pageSize);
			querys.setMaxResults(pageNumber);
			ArrayList<Test> dryeye = (ArrayList<Test>) querys.list();
			return Test;
		}
		return null;
	}

这方法用于获取数据列表,

querys.setFirstResult(pageSize);   指定从那个对象开始查询,参数的索引位置是从0开始的。

 querys.setMaxResults(pageNumber);每页显示的数据

查询总数据条数方法:

	public int getTotal() {
		String Hql = "select count(*) from Test";
		Query query = this.getCurrentSession().createQuery(Hql);
		int total = ((Long) query.iterate().next()).intValue();
		return total;
	}

Service里将数据组织好,controller返回给前端。

前端下一页上一页等思路:

下一页就是pageSize加上每页显示的数据条数pageNumber。但是注意判断和总的条数total的关系。

上一页pageSize减去每页显示的数据条数pageNumber,注意判断和0的关系。

当在第一页的时候不可以点击上一页

在最后一页的时候不可以点击下一页

 

技术一直都在变,但思路大概就这样,一般不会变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值