Hibernate分页代码思路

简介: Hibernate分页思路

1.查询分页数据,利用hibernate Query API:
Query [setFirstResult、setMaxResults]
其中firstResult为从那条记录开始,maxResult为查询多少条记录,即每页显示条数
代码:
Query q = session.createQuery("from Event e order by e.id asc");
q.setFirstResult(firstResult);
q.setMaxResults(pageSize);
List list = q.list();

2.pageSize、pageNo
但分页时,我们知道的只是显示哪一个页(pageNo),每页显示多少条(pageSize)
则相当于maxResults已知,需要计算firstResult值

3.计算firstResult,
int firstResult = (pageNo - 1) * pageSize;

4.需要校验pageNo
if(pageNo <= 0) :如果传递负值或零,则默认显示第一页
if(pageNo > maxPages):比如,用6页,却要显示第7页,则默认显示最后一页
但maxPages未知

5.查询maxPages
需要查询总记录数
select count(*) from Event e

6.OK

相关文章
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
16 0
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
9 0
|
9月前
|
SQL Java 关系型数据库
【java】——Hibernate代码创建表
小编最近正在进行Hibernate框架的学习,根据代码建立数据库表实现了一个小例子,跟读者朋友进行分享。
|
11月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
43 0
|
11月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
61 0
|
Java 数据库连接 数据库
Hibernate中的一段批量插入功能的代码
/**   * 批处理保存信息   */  public void batchsave(List&lt;T&gt; entity) {   Session session = getSession();   T t = null; // 创建药品对象   // 循环获取药品对象   for (int i = 0; i &lt; entity.size(); i++) {  
1121 0
|
Java 数据库连接 Maven
hibernate Search 继续研究 增加 hibernate memcache 二级缓存 配置成功 附件maven代码(2)
首先安装 memecached 服务端:   之前写过的 文章,centos 安装memcached服务 :   http://toeo.iteye.com/blog/1240607   然后 在 前几天的 弄的  hibernate search 基础上,再添加 memcached 缓存。   因为 hibernate search 虽然 建立了索引。查询速度快了。
1401 0
|
15天前
|
SQL Java 数据库连接
jpa、hibernate、spring-data-jpa、jdbcTemplate
jpa、hibernate、spring-data-jpa、jdbcTemplate