`
aa00aa00
  • 浏览: 331387 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

Hibernate分页bean

阅读更多

package mrmwq;

// 导入相关包文件
import java.util.List;

// 导入hibernate2资源包文件
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;

public class PaginationInfo {

    private Session session; // session对象
    private String hql = "";
    private int totalCount = 0;
    private int pageCount = 3; // 每页的显示的数据项
    private boolean hasPreviousPage = false; // 上一页
    private boolean hasNextPage = false; // 下一页
    private int totalPageNum = 1;
    private int currentPageNum = 1;

    // 私有的构造函数
    public PaginationInfo() {
    }

    // 初始化分页信息
    public void init(Session session, String hql, int pageCount) throws Exception {
        this.session = session;
        this.hql = hql;
        this.pageCount = pageCount;
        totalCount = ((Integer) session.createQuery("select count(*)" + hql).
                      uniqueResult()).intValue();
        if (this.totalCount % this.pageCount == 0) {
            this.totalPageNum = this.totalCount / this.pageCount;
        } else {
            this.totalPageNum = this.totalCount / this.pageCount + 1;
        }
        if (this.totalPageNum > 1) {
            this.hasNextPage = true;
        }
    }

    // 获得前一页信息
    public List getPreviousPage(Session session) throws HibernateException {
        this.session = session;
        if (this.getCurrentPageNum() > 1) {
            this.currentPageNum = this.currentPageNum - 1;
            if (this.currentPageNum > 1) {
                this.hasPreviousPage = true;
                this.hasNextPage = true;
            } else {
                this.hasPreviousPage = false;
                this.hasNextPage = true;
            }
        }
        return this.getPageMessage();
    }

    // 获得当前页信息
    public List getCurrentPage(Session session) throws Exception {
        this.session = session;
        return this.getPageMessage();
    }

    // 获得下一页信息
    public List getNextPage(Session session) throws Exception {
        this.session = session;
        if (this.getCurrentPageNum() < this.totalPageNum) {
            this.currentPageNum = this.currentPageNum + 1;
            if (this.currentPageNum < this.totalPageNum) {
                this.hasPreviousPage = true;
                this.hasNextPage = true;
            } else {
                this.hasPreviousPage = true;
                this.hasNextPage = false;
            }
        }
        return this.getPageMessage();
    }

    // 获得指定页信息
    public List getAppointPage(Session session, int currentPageNum) throws HibernateException {
        this.session = session;
        if (currentPageNum > 0 & currentPageNum <= this.totalPageNum) {
            this.currentPageNum = currentPageNum;
            if (this.currentPageNum > 1) {
                this.hasPreviousPage = true;
            } else {
                this.hasPreviousPage = false;
            }
            if (this.currentPageNum < this.totalPageNum) {
                this.hasNextPage = true;
            } else {
                this.hasNextPage = false;
            }
        }
        return this.getPageMessage();
    }

    // 检索指定信息的方法
    private List getPageMessage() throws HibernateException {
        Query q = session.createQuery(hql);
        q.setFirstResult((this.currentPageNum - 1) * this.pageCount);
        q.setMaxResults(this.pageCount);
        this.print();
        return q.list();
    }

    // 测试方法
    public void print() {
        System.out.println("------当前是第:" + this.getCurrentPageNum() + "/" +
                           this.getTotalPageNum() + "页");
        System.out.print("      HasPreviousPage:" + this.isHasPreviousPage());
        System.out.print("      HasNextPage:" + this.isHasNextPage());
    }

    // 返回参数值的一些方法
    public int getTotalCount() {
        return totalCount;
    }

    public int getPageCount() {
        return pageCount;
    }

    public boolean isHasPreviousPage() {
        return hasPreviousPage;
    }

    public boolean isHasNextPage() {
        return hasNextPage;
    }

    public int getTotalPageNum() {
        return totalPageNum;
    }

    public int getCurrentPageNum() {
        return currentPageNum;
    }
}
分享到:
评论

相关推荐

    struts+hibernate分页

    综上所述,"struts+hibernate分页"涉及到的主要是如何在Struts的控制层和Hibernate的数据层之间协调处理分页请求,以及在DAO层利用Hibernate的特性实现数据库查询的分页。理解并掌握这两个框架的分页机制,对于开发...

    高效率的dw+spring+hibernate分页演示例子

    这个"高效率的dw+spring+hibernate分页演示例子"提供了一个实用的示例,展示了如何将这三个框架整合起来,以实现高效的数据分页功能。 首先,让我们来逐一了解这三个技术: 1. **DWR (Direct Web Remoting)**:DWR...

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

    【Struts2+Hibernate实现分页详解】 在Java Web开发中,Struts2和Hibernate是两个非常重要的框架,它们分别负责MVC模式中的控制层和持久层。Struts2提供了强大的Action类和拦截器,使得业务逻辑处理更加简洁;而...

    完整Struts2 HIBERNATE实现分页

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

    Struts+Hibernate分页

    通过以上步骤,我们可以构建一个功能完备且易于维护的Struts+Hibernate分页系统。在实际开发中,还可以结合Spring框架进行整合,提高代码的可测试性和解耦性。同时,随着技术的发展,现在的Web应用更多地采用Spring ...

    Spring+Hibernate完整分页

    本文将深入探讨如何利用Spring和Hibernate实现完整的分页功能,并结合MySQL数据库进行操作。 首先,Spring是一个轻量级的框架,它提供了全面的DI服务,允许开发者通过XML配置或注解来管理对象的生命周期和依赖关系...

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

    - 在此案例中,可能使用了Hibernate的`Criteria`或`HQL`查询语言配合`PageRequest`或自定义分页实现,通过指定页码和每页大小来获取特定范围的数据。 6. **文件名:user** - "user"可能是数据库中的一个表名,...

    spring+struts2+hibernate整合实现分页

    在这个项目中,“spring+struts2+hibernate整合实现分页”是一个基础教程,旨在帮助初学者理解如何在SSH框架下实现数据的分页展示。下面将详细讲解这个主题中的关键知识点。 1. **Spring框架**:Spring是Java应用的...

    jsp分页bean

    **JSP分页Bean**是Java Web开发中一个常见的组件,用于处理大量数据的展示问题。在网页上显示成百上千的数据一次性加载不仅会影响用户体验,也会对服务器性能造成压力。因此,分页技术应运而生,它允许用户逐页浏览...

    struts2+spring+hibernate分页显示

    总的来说,使用Struts2+Spring+Hibernate实现分页显示,需要综合运用这三个框架的核心特性,通过拦截器处理分页逻辑,Spring管理业务对象和事务,Hibernate处理数据查询。这个过程涉及到前端视图的构建、后端服务的...

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

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

    ssh struts hibernate spring 分页

    在Hibernate中,可以使用Criteria、HQL(Hibernate Query Language)或SQL的Limit子句进行分页查询。Spring提供了Pageable接口和Page对象,配合JPA(Java Persistence API)或MyBatis等持久层框架,可以方便地实现...

    Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页

    总的来说,"SSHWithAnnotationDemo"项目展示了如何利用现代Java技术栈的高级特性,包括Struts2、Spring3和Hibernate的注解功能,DAO层的泛型设计以及通用的分页实现,来构建一个高效、可维护的Web应用。这样的实践...

    ssh框架模板+hibernate简单分页

    这个压缩包文件提供了一个SSH框架模板以及使用Hibernate实现的分页功能的例子代码。 **Struts2** 是一个MVC(Model-View-Controller)框架,负责处理HTTP请求,维护应用程序的业务逻辑和视图之间的分离。它通过...

    Struts+Spring+Hibernate通用分页解决方案

    在分页解决方案中,Spring可以帮助管理Bean的生命周期,以及协调Struts和Hibernate之间的通信。 3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)工具,它允许开发者使用Java对象来操作数据库记录,简化...

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

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

    Struts + Hibernate v1.1 分页源码

    此外,页面的展示通常会涉及到JSP(JavaServer Pages),在JSP中,可以通过Struts标签库(struts-bean、struts-html等)来展示PageBean中的数据和分页链接。 总结来说,这个"Struts+Hibernate 分页源码"项目涵盖了...

    Struts_Spring_Hibernate_CRUD操作案例_-分页查询

    在这个“Struts_Spring_Hibernate_CRUD操作案例_分页查询”中,我们将深入探讨如何整合这三大框架实现数据的创建、读取、更新、删除(CRUD)以及分页查询。 1. **Struts框架**: - **Action类**:它是业务逻辑的...

    S2SH购物车+HibernateTemplate分页

    在S2SH购物车项目中,持久层的分页功能是通过Hibernate和HibernateTemplate实现的。这通常涉及到使用Criteria、Query或HQL语句配合FirstResult和MaxResults参数来限制返回的结果集大小,从而达到分页效果。这样的...

    struts+hibernate做的分页

    在本项目中,"struts+hibernate做的分页"指的是使用这两个框架实现数据的分页展示。 分页在大型Web应用中至关重要,因为它能提高用户体验,避免一次性加载大量数据导致页面响应慢或浏览器崩溃。在Struts中,分页...

Global site tag (gtag.js) - Google Analytics