`
adaqian
  • 浏览: 29843 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Hibernate分页查询

阅读更多
package com.ada.dao.impl;

import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;

import com.ada.bean.Page;


public class MyDAOSupport {
	
	/** 分页查询方法
	 * ada 2010-6-28
	 * @param cri:查询条件对象
	 * @param page:分页对象
	 * @return page:分页对象
	 */
	protected Page getQueryPage(Criteria cri,Page page){
			
		int count = ((Long)cri.setProjection(Projections.rowCount()).uniqueResult()).intValue();
		cri.setProjection(null);
		page.setSumcount(count);//总记录数 
		int pagenum=count/page.getPagesize();
		if(count%page.getPagesize()!=0)
			pagenum+=1;
		page.setPagecount(pagenum);//总页数
		int startNo=(page.getCurpage()-1)*page.getPagesize();
		int endNo=startNo+page.getPagesize();

		cri.setFirstResult(startNo);
		cri.setMaxResults(endNo);
	
		page.setResult(cri.list());
		return page;

	}
}



调用例子:
package com.ada.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

import com.ada.bean.Page;
import com.ada.bean.User;
import com.ada.dao.UserDAO;
import com.ada.util.HibernateUtil;

public class UserDAOImpl extends MyDAOSupport implements UserDAO {

	public Page queryUserPages(Page page) {
		
		Session s=null;
		try{
			s=HibernateUtil.getSession();
			Criteria cri = s.createCriteria(User.class);
			return getQueryPage(cri,page);
		}finally{
			if(s!=null)
				s.close();
		}
	}

         public Page queryUserPagesByDeptid(String deptid,Page page){
		Session s=null;
		try{
			s=HibernateUtil.getSession();
			Criteria cri = s.createCriteria(User.class);
			cri.add(Restrictions.eq("deptid",Long.valueOf(deptid)));
			return getQueryPage(cri,page);
		}finally{
			if(s!=null)
				s.close();
		}
	}


}



分页对象
package com.ada.bean;

import java.util.List;

public class Page {
	private int pagesize;//每页显示个数
	private int curpage;//当前页
	private int pagecount;//总页数
	private int sumcount;//总记录数
	private List result;

	public int getSumcount() {
		return sumcount;
	}
	public void setSumcount(int sumcount) {
		this.sumcount = sumcount;
	}
	public int getPagecount() {
		return pagecount;
	}
	public void setPagecount(int pagecount) {
		this.pagecount = pagecount;
	}
	public int getCurpage() {
		return curpage;
	}
	public void setCurpage(int curpage) {
		this.curpage = curpage;
	}
	
	public int getPagesize() {
		return pagesize;
	}
	public void setPagesize(int pagesize) {
		this.pagesize = pagesize;
	}
	public List getResult() {
		return result;
	}
	public void setResult(List result) {
		this.result = result;
	}

}



注:
可结合struts2自定义分页标签做前台展示
http://adaqian.iteye.com/blog/707539
分享到:
评论

相关推荐

    Hibernate分页查询小结

    Hibernate分页查询小结

    Hibernate分页查询原理解读

    Hibernate分页查询原理解读 , 忘记以前在哪看的了, 现在贴出来和大家分享一下。

    hibernate分页查询 数据库连接

    hibernate分页查询 数据库连接,不错的分析,可以尝试下载易用。。

    Hibernate 分页查询效果

    本篇主要围绕"Hibernate分页查询效果"这一主题,深入探讨如何利用Hibernate框架实现高效、便捷的分页功能。 首先,Hibernate是一个优秀的Java持久化框架,它提供了ORM(对象关系映射)解决方案,使得开发者可以使用...

    hibernate分页查询功能

    Struts2+Sprint+Hibernate分页查询功能,实现过程步骤完整。

    hibernate分页查询

    hibernate分页查询,里面包含数据库。自己写的。能正常运行。

    使用hibernate分页查询

    1. **配置Hibernate分页**: 在Hibernate中,我们通常使用`Criteria`或`Query` API进行分页查询。`Criteria`提供了一种更面向对象的方式来执行SQL查询,而`Query` API则对应于原生的SQL语句。在这些API中,我们可以...

    struts2+spring+hibernate分页查询

    **Hibernate分页查询** Hibernate支持两种分页方式:Criteria API和HQL(Hibernate Query Language)。Criteria API可以通过DetachedCriteria对象创建查询条件,然后调用setFirstResult和setMaxResults方法实现分页...

    webwork2.2.7+spring+hibernate分页查询

    webwork2.2.7+spring+hibernate分页查询 通过输入用户名获取数据并进行分页

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    STRUTS2+HIBERNATE分页 实现代码详细的分页实现代码实现代码详细的分页实现代码实现代码详细的分页实现代码实现代码详细的分页实现代码

    springmvc+hibernate+spring maven案例(包含分页查询)

    一个用springmvc+hibernate+spring maven实现的增、删、改、查的例子

    hibernate实现分页查询

    hibernate 分页查询的实现 hibernate 内置的有分页功能 有三个参数 thisnumber一个是当前页数 sumcount是一页显示多少条数据 sql是用来查询的sql语句 public List getPageList(int thisNumber, int sumCount, ...

    hibernate分页Hibernate 分页的设计和编码

    hibernate分页Hibernate 分页的设计和编码

    Hibernate HQL查询 分页查询 模糊查询.docx

    Hibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询....

    Struts和Hibernate分页及查询

    在分页查询中,Hibernate提供了一种称为HQL(Hibernate Query Language)的SQL方言,可以方便地实现复杂的查询,包括分页查询。此外,Hibernate还支持Criteria查询,这是一种更加面向对象的查询方式,同样可以实现...

    JQuery,ajax,hibernate+spring,分页查询.rar

    至于“Hibernate分页查询原理解读”,这可能是一个深入解析Hibernate分页机制的文档,包括`FirstResult`和`MaxResults`参数的使用,以及如何有效地缓存查询结果以提高性能。 综合来看,这个压缩包包含了一系列关于...

    基于hibernate 通用查询框架,包含查询、分页列表 功能

    通用查询页面中的查询项、查询出的分页列表都是自动生成的。开发简便、快速,附件中是一套完整的demo和使用说明 支持全部Hql语法格式 Awake 后续功能扩展 1.XML格式数据输出,保证了ajax用户也可以使用Awake框架...

    struts2+spring+hibernate分页显示

    4. **Hibernate分页查询**:在DAO中,使用Session的createQuery或createCriteria方法,结合PageHelper(或其他分页插件)进行分页查询。PageHelper会自动计算总页数,并返回当前页的数据和总记录数。 5. **返回结果...

    hibernate 模糊查询 分页

    接下来,我们讨论分页查询。在处理大量数据时,一次性加载所有结果可能会导致性能问题。因此,通常会采用分页的方式来获取数据。在Hibernate中,我们可以使用`Criteria`或`Query`对象的`setFirstResult()`和`...

Global site tag (gtag.js) - Google Analytics