`
aa00aa00
  • 浏览: 325599 次
  • 性别: 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;
    }
}
分享到:
评论

相关推荐

    三大框架下分页源代码

    &lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt; &lt;ref bean="sessionFactory"/&gt; &lt;/bean&gt; &lt;!-- 新闻类型 --&gt; &lt;bean id="newsclassDAO" class=...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     25.1.3 编写Enterprise Java Bean类  25.2 在业务代理类中访问EJB组件  25.3 发布J2EE应用  25.3.1 在JBoss上部署EJB组件  25.3.2 在JBoss上部署Web应用  25.3.3 在JBoss上部署J2EE应用  25.4 小结 ...

    J2EE三大框架_笔记_a

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    J2EE框架_笔记_c

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    javaEE框架笔记,识货人下

    53使用Struts + Spring + Hibernate完成分页笔记.pdf 54留言管理程序_Struts + Spring + Hibernate笔记.pdf 6-Struts标签-BEAN标签笔记.pdf 7-Struts标签 -LOGIC标签笔记.pdf 8-Struts标签- HTML标签笔记.pdf 9-...

    第24次课-1 Spring与Hibernate的整合

    将DataSource、SessionFactory、Transaction等作为Spring的Bean,通过配置文件的方式来管理。 24.1 概述 24.1.1 概述 Spring提供了DAO支持,可以简化DAO组件的开发,特别是IoC容器的使用,提供了DAO组件与业务...

    J2EE框架_笔记_b

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    java大作业基于SSH框架的学生成绩管理系统源码.zip

    java基于SSH框架的学生成绩管理系统源码。要求: (1) 整合Struts2、Spring和Hibernate框架...​ (3) 在Spring配置文件中增加该DAO层实现类的定义,并需要依赖注入一个SessionFactory bean的引用。 7、 开发Service

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...

    Java求职面试宝典各大公司常考知识点

    如果不使用Hibernate自带的分页,则采用什么方式分页? 3 1.4. hibernate的对象的三种持久化状态,并给出解释? 3 1.5. hibernate的三种状态之间如何转换 3 1.6. hibernate中一对多配置文件返回的是什么? 4 1.7. ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     25.1.3 编写Enterprise Java Bean类  25.2 在业务代理类中访问EJB组件  25.3 发布J2EE应用  25.3.1 在JBoss上部署EJB组件  25.3.2 在JBoss上部署Web应用  25.3.3 在JBoss上部署J2EE应用  25.4 小结 ...

    健身俱乐部Web网站-JSP+Servlet+Hibernate+jQuery+Ajax

    控制转发层采用Servlet,数据访问层采用Hibernate(bean和dao是由Hibernate逆向工程自动生成)。 系统采用分层架构,由上到下分为视图层、控制转发层、业务层、服务层、数据库访问层。运用了一些基本设计模式,系统...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     25.1.3 编写Enterprise Java Bean类  25.2 在业务代理类中访问EJB组件  25.3 发布J2EE应用  25.3.1 在JBoss上部署EJB组件  25.3.2 在JBoss上部署Web应用  25.3.3 在JBoss上部署J2EE应用  25.4 小结 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     25.1.3 编写Enterprise Java Bean类  25.2 在业务代理类中访问EJB组件  25.3 发布J2EE应用  25.3.1 在JBoss上部署EJB组件  25.3.2 在JBoss上部署Web应用  25.3.3 在JBoss上部署J2EE应用  25.4 小结 ...

    MLDN框架笔记大全

    假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-BEAN标签 07 Struts标签 -...

    SSH整合练习增删改查

    struts2.1.8+hibernate3.5.5+spring3.0.2+mysql5.1+jdk1.6 使用SSH整合实现对一个bean的增删改查 实现的功能为: 排序,搜索,分页

    Spring2.5+Struts2.0+hibernate3.0+Dwr+jquery+displayTag

    自已写的一个demo 1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;...5 加入display的分页,并且是物理分页 打开后自已建表sql.txt jdbc.properties

    AutoCode代码生成器【SSH版】

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 ...

    低清版 大型门户网站是这样炼成的.pdf

    (Struts 2+Spring 2+Hibernate 3).pdf(完整版) 网上有高清版350M的。可以去下 http://115.com/file/be5gwid8 请于下载后 24H 内及时删除!请抱着学习的态度下载此资料。 总共900多页!!!!!!! 第1篇 ...

Global site tag (gtag.js) - Google Analytics