`
aflyer
  • 浏览: 36639 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于Hibernate分页

阅读更多
1. page.java
java 代码
  1. package com.sclh.rsp.registercenter.common;   
  2.   
  3. public class Page {   
  4.     /** imply if the page has previous page */  
  5.     private boolean hasPrePage;   
  6.   
  7.     /** imply if the page has next page */  
  8.     private boolean hasNextPage;   
  9.   
  10.     /** the number of every page */  
  11.     private int everyPage;   
  12.   
  13.     /** the total page number */  
  14.     private int totalPage;   
  15.   
  16.     /** the number of current page */  
  17.     private int currentPage;   
  18.   
  19.     /** the begin index of the records by the current query */  
  20.     private int beginIndex;   
  21.        
  22.     private int totalCount;   
  23.   
  24.     /** The default constructor */  
  25.     public Page() {   
  26.   
  27.     }   
  28.   
  29.     /** construct the page by everyPage     
  30.      * @param everyPage    
  31.      * */  
  32.     public Page(int everyPage) {   
  33.         this.everyPage = everyPage;   
  34.     }   
  35.   
  36.     /** The whole constructor */  
  37.     public Page(boolean hasPrePage, boolean hasNextPage, int everyPage,   
  38.             int totalPage, int currentPage, int beginIndex,int totalCount) {   
  39.         this.hasPrePage = hasPrePage;   
  40.         this.hasNextPage = hasNextPage;   
  41.         this.everyPage = everyPage;   
  42.         this.totalPage = totalPage;   
  43.         this.currentPage = currentPage;   
  44.         this.beginIndex = beginIndex;   
  45.         this.totalCount = totalCount;   
  46.     }   
  47.   
  48.     /**    
  49.      * @return     
  50.      * Returns the beginIndex.    
  51.      */  
  52.     public int getBeginIndex() {   
  53.         return beginIndex;   
  54.     }   
  55.   
  56.     /**    
  57.      * @param beginIndex     
  58.      * The beginIndex to set.    
  59.      */  
  60.     public void setBeginIndex(int beginIndex) {   
  61.         this.beginIndex = beginIndex;   
  62.     }   
  63.   
  64.     /**    
  65.      * @return     
  66.      * Returns the currentPage.    
  67.      */  
  68.     public int getCurrentPage() {   
  69.         return currentPage;   
  70.     }   
  71.   
  72.     /**    
  73.      * @param currentPage     
  74.      * The currentPage to set.    
  75.      */  
  76.     public void setCurrentPage(int currentPage) {   
  77.         this.currentPage = currentPage;   
  78.     }   
  79.   
  80.     /**    
  81.      * @return     
  82.      * Returns the everyPage.    
  83.      */  
  84.     public int getEveryPage() {   
  85.         return everyPage;   
  86.     }   
  87.   
  88.     /**    
  89.      * @param everyPage     
  90.      * The everyPage to set.    
  91.      */  
  92.     public void setEveryPage(int everyPage) {   
  93.         this.everyPage = everyPage;   
  94.     }   
  95.   
  96.     /**    
  97.      * @return     
  98.      * Returns the hasNextPage.    
  99.      */  
  100.     public boolean getHasNextPage() {   
  101.         return hasNextPage;   
  102.     }   
  103.   
  104.     /**    
  105.      * @param hasNextPage     
  106.      * The hasNextPage to set.    
  107.      */  
  108.     public void setHasNextPage(boolean hasNextPage) {   
  109.         this.hasNextPage = hasNextPage;   
  110.     }   
  111.   
  112.     /**    
  113.      * @return     
  114.      * Returns the hasPrePage.    
  115.      */  
  116.     public boolean getHasPrePage() {   
  117.         return hasPrePage;   
  118.     }   
  119.   
  120.     /**    
  121.      * @param hasPrePage     
  122.      * The hasPrePage to set.    
  123.      */  
  124.     public void setHasPrePage(boolean hasPrePage) {   
  125.         this.hasPrePage = hasPrePage;   
  126.     }   
  127.   
  128.     /**    
  129.      * @return Returns the totalPage.    
  130.      *     
  131.      */  
  132.     public int getTotalPage() {   
  133.         return totalPage;   
  134.     }   
  135.   
  136.     /**    
  137.      * @param totalPage     
  138.      * The totalPage to set.    
  139.      */  
  140.     public void setTotalPage(int totalPage) {   
  141.         this.totalPage = totalPage;   
  142.     }   
  143.   
  144.     public int getTotalCount() {   
  145.         return totalCount;   
  146.     }   
  147.   
  148.     public void setTotalCount(int totalCount) {   
  149.         this.totalCount = totalCount;   
  150.     }   
  151. }   

 

2. PageUtil.java

java 代码
  1. package com.sclh.rsp.registercenter.common;   
  2.   
  3. public class PageUtil {   
  4.   
  5.     /**  
  6.      * Use the origin page to create a new page  
  7.      *   
  8.      * @param page  
  9.      * @param totalRecords  
  10.      * @return  
  11.      */  
  12.     public static Page createPage(Page page, int totalRecords) {   
  13.         return createPage(page.getEveryPage(), page.getCurrentPage(),   
  14.                 totalRecords);   
  15.     }   
  16.   
  17.     /**  
  18.      * the basic page utils not including exception handler  
  19.      *   
  20.      * @param everyPage  
  21.      * @param currentPage  
  22.      * @param totalRecords  
  23.      * @return page  
  24.      */  
  25.     public static Page createPage(int everyPage, int currentPage,   
  26.             int totalRecords) {   
  27.         everyPage = getEveryPage(everyPage);   
  28.         currentPage = getCurrentPage(currentPage);   
  29.         int beginIndex = getBeginIndex(everyPage, currentPage);   
  30.         int totalPage = getTotalPage(everyPage, totalRecords);   
  31.         boolean hasNextPage = hasNextPage(currentPage, totalPage);   
  32.         boolean hasPrePage = hasPrePage(currentPage);   
  33.   
  34.         return new Page(hasPrePage, hasNextPage, everyPage, totalPage,   
  35.                 currentPage, beginIndex, totalRecords);   
  36.     }   
  37.   
  38.     private static int getEveryPage(int everyPage) {   
  39.         return everyPage == 0 ? 10 : everyPage;   
  40.     }   
  41.   
  42.     private static int getCurrentPage(int currentPage) {   
  43.         return currentPage == 0 ? 1 : currentPage;   
  44.     }   
  45.   
  46.     private static int getBeginIndex(int everyPage, int currentPage) {   
  47.         return (currentPage - 1) * everyPage;   
  48.     }   
  49.   
  50.     private static int getTotalPage(int everyPage, int totalRecords) {   
  51.         int totalPage = 0;   
  52.   
  53.         if (totalRecords % everyPage == 0)   
  54.             totalPage = totalRecords / everyPage;   
  55.         else  
  56.             totalPage = totalRecords / everyPage + 1;   
  57.   
  58.         return totalPage;   
  59.     }   
  60.   
  61.     private static boolean hasPrePage(int currentPage) {   
  62.         return currentPage == 1 ? false : true;   
  63.     }   
  64.   
  65.     private static boolean hasNextPage(int currentPage, int totalPage) {   
  66.         return currentPage == totalPage || totalPage == 0 ? false : true;   
  67.     }   
  68.   
  69. }   

 

3. 应用

java 代码
  1. ......   
  2.     /**  
  3.      * @throws Exception   
  4.      * @see com.sclh.rsp.servicecenter.service.IBaseService#queryList(java.lang.String, int)  
  5.      */  
  6.     public Result queryList(String hql, int currentPage, int everyPage){   
  7.         List list = null;   
  8.         Result result = null;   
  9.   
  10.         Page page = new Page();   
  11.         page.setEveryPage(everyPage);   
  12.         page.setCurrentPage(currentPage);   
  13.   
  14.         int totalRecords = 0;   
  15.   
  16.         try {   
  17.             totalRecords = adjunctDataDAO.getCount(hql);   
  18.             if (totalRecords != 0) {   
  19.                 page = PageUtil.createPage(page, totalRecords);   
  20.                 list = adjunctDataDAO.getByPage(hql, page);   
  21.                 result = new Result(page, list);   
  22.             } else {   
  23.                 // throw new ObjectNotFoundException("adjunctDataNotExist",   
  24.                 // null);   
  25.                    
  26.             }   
  27.         } catch (Exception e) {   
  28.             log.error(this.getClass()   
  29.                     + "中 queryList(String hql, int currentPage) 操作失败!"  
  30.                     + e.getMessage());   
  31.         }   
  32.         return result;   
  33.     }   
  34. ................  
分享到:
评论

相关推荐

    关于Hibernate分页类和jdbc的sql分页完美融合

    本主题将探讨如何在Hibernate分页类和JDBC的SQL分页方法之间实现完美的融合,以提高性能并提供更好的用户体验。 首先,让我们了解一下Hibernate的分页功能。Hibernate提供了一种方便的方式来处理分页查询,通过...

    Hibernate分页查询小结

    Hibernate分页查询小结

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

    标题与描述均提到了“Hibernate分页的设计和编码”,这表明文章主要聚焦于如何在Hibernate框架中实现数据分页功能。下面将详细解析这一主题的关键知识点。 ### Hibernate分页概念 Hibernate是Java环境下一个开放源...

    Hibernate分页查询原理解读

    #### 三、Hibernate分页查询实现原理 ##### 3.1 使用SQL LIMIT实现分页 对于支持LIMIT关键字的数据库(例如MySQL),Hibernate会通过特定的方言(Dialect)来生成包含LIMIT关键字的SQL语句。具体实现如下: ```...

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

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...

    hibernate分页查询

    让我们深入探讨Hibernate分页查询的相关知识点。 一、Hibernate分页原理 Hibernate分页查询基于SQL的LIMIT和OFFSET子句,通过Session的createQuery或createSQLQuery方法创建查询,并设置FirstResult和MaxResults...

    hibernate分页查询 数据库连接

    此外,优化查询,避免N+1查询问题,合理设计实体关系,都能有效提升Hibernate分页查询的效率。 总结起来,Hibernate的分页查询和数据库连接管理是其强大功能的重要组成部分。正确理解和使用这些特性,能够帮助...

    strut2.0 + hibernate3.0 + jquery.datatables+mysql 5.0实现的 hibernate分页

    hibernate分页(无排序,搜索,仅仅分页显示),服务器端分页在datatables上展现,有关 datatables的知识请关注它的官网http://www.datatables.net/,datatables的功能很 全面。 2,建表的sql--studentinfo和插入...

    struts2+spring+hibernate分页显示完整代码

    本篇文章将详细讲解如何在基于Struts2、Spring和Hibernate的项目中实现分页功能。 首先,我们从DAO层开始。在`MemberDao`接口中,我们定义了两个关键的方法,一个是用于分页查询,另一个是获取所有记录的数量。这两...

    hibernate分页代码

    总结起来,"hibernate分页代码"是一个关于如何在Hibernate中进行分页查询的实践示例,适用于在MyEclipse环境下运行。通过Criteria API或HQL,开发者能够方便地实现分页功能,提升应用性能,为用户提供更好的体验。...

    Struts + Hibernate 分页实现

    在"Struts + Hibernate 分页实现"这个项目中,重点在于如何在Web应用中整合这两个框架,并实现数据的分页显示。分页是大型数据集处理时常见的需求,它能够帮助用户更有效地浏览和管理大量信息,避免一次性加载所有...

    spring+hibernate 分页 +mysql

    这里我们讨论的是结合Spring、Hibernate和MySQL实现的分页功能,这是一个常见的技术栈组合,广泛应用于Web应用开发。 Spring是一个开源的Java框架,它提供了全面的编程和配置模型,用于构建企业级应用。Spring的IoC...

    java 实现的一个简单的hibernate分页类

    java 实现的一个简单的hibernate分页类 可以设置,从某一条开始取、显示的条数 不依赖struts spring

    Hibernate分页教学视频

    Hibernate分页教学视频 Hibernate分页教学视频 Hibernate分页教学视频

    Struts和Hibernate分页及查询

    在"Struts+Hibernate分页及条件查询练习"这个项目中,开发者可能采用了以下步骤: 1. **配置Struts和Hibernate**:首先,需要在项目中引入Struts和Hibernate的相关库,配置Struts的struts-config.xml文件和...

    hibernate分页技巧

    hibernate分页 博文链接:https://iomo.iteye.com/blog/243518

    hibernate实现分页

    ### Hibernate分页基础 1. **Criteria API**:Hibernate的Criteria API允许我们创建动态查询,同时也支持分页。通过设置`setFirstResult()`和`setMaxResults()`方法,可以实现分页效果。例如: ```java Criteria ...

    用户Hibernate实现的一个分页

    一、Hibernate分页基础 1. Hibernate的Query和Criteria API都提供了分页功能。使用`setFirstResult()`方法设置查询开始的位置,即第几条记录,以及`setMaxResults()`方法设置一次返回的最大记录数,这两者结合即可...

    Hibernate分页封装

    Hibernate分页封装 Hibernate是一个流行的Java持久化框架,提供了对数据库的访问和操作。然而,在实际开发中,分页是一种非常常见的需求,Hibernate也提供了相应的解决方案。下面,我们将对Hibernate分页封装进行...

    hibernate 通用分页的实现

    hibernate_mysql_struts2 实现的通用分页类.欢迎指正

Global site tag (gtag.js) - Google Analytics