`
zhjb2000
  • 浏览: 58343 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

基于 Hibernate Query 实现分页器

阅读更多
importjava.util.List;
importorg.hibernate.HibernateException;
importorg.hibernate.Query;
importorg.hibernate.ScrollableResults;
/***//**
*<p>Title:分页器</p>
*
*<p>Description:</p>
*
*<p>Copyright:Copyright(c)2006</p>
*
*<p>Company:</p>
*
*<p>Author:一个人的日子</p>
*
*<p>Version:1.0</p>
*
*<p>CreateDate:2006-08-17</p>
*
*/

publicclassPage...{
privateListresult;//结果集
privateintpageSize;//页大小
privateintstartPage;//起始页从1开始
privateScrollableResultsscrollableResults;
privateinttotalResults;//总记录的条数
privateinttotalPages;//总页数

publicPage(intstartPage,intpageSize,Queryquery)...{
this.startPage=startPage;
this.pageSize=pageSize;
this.result=null;
try...{
this.scrollableResults=query.scroll();
this.scrollableResults.last();
if(scrollableResults.getRowNumber()>=0)...{
this.totalResults=this.scrollableResults.getRowNumber()+1;
}
else...{
this.totalResults=0;
}

setTotalPages();
result
=query.setFirstResult((this.getStartPage()-1)*this.pageSize).setMaxResults(this.pageSize).list();
}
catch(HibernateExceptione)...{
e.printStackTrace();
}

}


/***//**
*得到查询结果
*
@return查询结果
*/

publicListgetResult()...{
returnresult;
}


/***//**
*得到起始页
*
@return
*/

publicintgetStartPage()...{
if(startPage<1)...{
startPage
=1;
}

if(startPage>totalPages)...{
startPage
=totalPages;
}

returnstartPage;
}


/***//**
*得到记录总数
*
@return
*/

publicintgetTotalResults()...{
returntotalResults;
}


/***//**
*得到页大小
*
@return
*/

publicintgetPageSize()...{
returnpageSize;
}


/***//**
*判断是否是第一页
*
@return
*/

publicbooleanisFirstPage()...{
returnthis.startPage==1;
}


/***//**
*判断是否是有后一页
*
@return
*/

publicbooleanhasNextPage()...{
returnthis.startPage<this.totalPages;
}


/***//**
*判断是否是有前一页
*
@return
*/

publicbooleanhasPreviousPage()...{
returnthis.startPage>1;
}


/***//**
*设置总页数
*
*/

privatevoidsetTotalPages()...{
this.totalPages=this.totalResults/this.pageSize;
if(totalPages*pageSize<totalResults)...{
totalPages
++;
}

}


/***//**
*得到总页数
*
@return
*/

publicintgetTotalPages()...{
returntotalPages;
}

}

分享到:
评论

相关推荐

    完整Struts2 HIBERNATE实现分页

    根据提供的标题、描述以及部分内文,我们可以梳理出关于如何使用Struts2与Hibernate实现分页功能的关键知识点。 ### Struts2与Hibernate简介 - **Struts2**:这是一个基于MVC架构的开源Web框架,它能帮助开发者...

    一个简单的基于hibernate框架的分页标签

    本项目提供了一个基于Hibernate实现的简单分页功能,这对于处理大量数据的Web应用来说是至关重要的,因为一次性加载所有数据可能会导致性能问题。 在Java Web开发中,通常会使用MVC(Model-View-Controller)架构...

    Struts + Hibernate 实现简单分页功能

    在Hibernate中,这可以通过设置Query的setFirstResult和setMaxResults方法来实现,这两个方法的参数对应于我们之前计算的startIndex和endIndex。 在获取到分页数据后,我们可以将其封装成一个List对象,并将这个...

    dwr+hibernate实现的分页技术

    ### dwr+hibernate实现的分页技术详解 在当今快速发展的互联网环境中,网站和应用程序需要处理大量的数据。为了提高用户体验并优化服务器资源利用,分页技术成为了必不可少的一部分。本文将详细介绍如何通过结合dwr...

    Struts + Hibernate 分页实现

    在数据库查询时,我们需要利用Hibernate的Criteria API或HQL(Hibernate Query Language)来编写分页查询。这通常涉及到设置查询条件、限制查询结果的数量(如每页多少条记录)以及指定查询的起始位置(当前页的第一...

    Struts2+HIBERNATE实现分页(完整讲解)

    在Hibernate中,我们可以使用`Criteria`或`Query`接口实现分页。例如: ```java Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(Soft.class); ...

    springMVC+spring+hibernate+jquery分页完整项目,完整代码

    本项目是一个基于SpringMVC、Spring、Hibernate和jQuery的完整分页应用,涵盖了后端服务、数据持久化、前端交互等多个重要技术领域。下面将详细解释这些技术及其在项目中的应用。 1. SpringMVC:SpringMVC是Spring...

    Struts+Hibernate实现分页

    在分页中,Hibernate可以通过HQL(Hibernate Query Language)或者Criteria API来执行SQL查询,获取特定页码的数据。例如,可以设置一个Limit子句来限制返回的记录数,再通过Offset来跳过前几条数据,以此实现分页。...

    Spring+Hibernate完整分页

    4. **编写分页逻辑**:在DAO层,使用HQL(Hibernate Query Language)或Criteria API来构造带有分页条件的查询。例如,`from User order by id asc limit ?, ?`,其中问号代表参数,分别是页码和每页大小。 5. **...

    struts2和hibernate整合,包含分页

    9. **分页实现**:使用Hibernate的Criteria API或者HQL实现分页查询。可以通过设置FirstResult和MaxResults参数来实现分页效果。 10. **登录功能**:创建一个登录Action,接收用户的用户名和密码,通过Service层...

    hibernate+struts分页

    在Java Web开发中,Hibernate和Struts是两个非常重要的框架,它们分别负责对象关系映射(ORM)和模型-视图-控制器(MVC)架构的实现。在处理大量数据时,分页技术显得尤为重要,它能提高用户体验,避免一次性加载...

    Extjs+Spring+Hibernate实现分页

    在分页场景中,Hibernate的Criteria、Query或HQL语言可以配合FirstResult和MaxResults方法实现分页查询。另外,Hibernate的Criteria API允许我们动态构建查询条件,从而适应不同情况下的分页需求。 在“xxrlmis项目...

    Struts+hibernate经典的分页代码

    在这个"Struts+Hibernate经典的分页代码"示例中,我们可以学习如何在基于Struts的Web应用中集成Hibernate,以实现数据的分页显示。分页是用户界面设计中一个常见的需求,特别是在处理大量数据时,它能提高用户体验,...

    Struts和Hibernate分页及查询

    本实践项目结合了这两个框架,实现了基于Struts的前端展示和基于Hibernate的数据访问层,提供了分页和条件查询功能,这对于大型Web应用来说是非常基础且重要的。 **Struts框架** 是一个用于构建企业级Web应用程序的...

    Hibernate+struts分页

    本项目“Hibernate+Struts分页”是针对基于Sqlserver2000数据库的应用程序设计的,它整合了两个流行的Java开发框架——Hibernate(持久层框架)和Struts(MVC框架),以实现高效且用户友好的数据浏览功能。...

    在struts+hibernate框架下实现动态分页

    在Struts和Hibernate这两个流行的Java Web开发框架的组合中,实现动态分页是一项常见的需求。动态分页允许用户浏览大量的数据,而不会一次性加载所有记录,从而提高用户体验和系统性能。下面将详细介绍如何在Struts...

    spring+struts+hibernate写的分页代码

    通过Criteria API或HQL(Hibernate Query Language)可以轻松地添加分页条件,例如LIMIT和OFFSET子句,从而只获取所需的数据量。 分页实现的步骤通常包括: 1. **请求处理**:用户通过浏览器发送请求,请求中包含...

    hibernate经典分页源代码

    Hibernate 提供了 Criteria API 和 HQL(Hibernate Query Language)来实现分页查询。 2. Hibernate Criteria API 分页: Hibernate 的 Criteria API 允许开发者以面向对象的方式构建动态查询。要实现分页,可以...

    struts2.0+hibernate+spring分页

    在本项目中,“struts2.0+hibernate+spring分页”是将这三种技术结合,实现数据的分页展示功能。分页是一种常见的优化策略,它可以提高用户体验,避免一次性加载过多数据导致页面响应慢或内存压力大。 首先,Struts...

    Struts + Hibernate v1.1 分页源码

    在实现分页功能时,通常会使用Criteria或HQL(Hibernate Query Language)进行查询,并结合Criteria的setFirstResult和setMaxResults方法来实现分页。例如,setFirstResult代表从哪条记录开始,setMaxResults则是每...

Global site tag (gtag.js) - Google Analytics