`
epgcnydy
  • 浏览: 16955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate分页

阅读更多

分页应该是软件开发中常见的功能。使用HIBERNATE分页。将其提取,留个记录。上代码

 

PaginationVo  分页的对象。

/**
 *
 * @author leixiaowu
 * @describe
 * @date 2010-12-8
 * @package cn.com.ait.energysaving.model.vo
 */
public class PaginationVo implements Serializable {

 /**
  *
  */
 private static final long serialVersionUID = 1L;

 /** 每页显示 */
 private int pageShowNum = 50;

 /** 总页数 */
 private int totalPages = 0;
 /** 总记录数 */
 private int recordSize = 0;
 /** 当前页面 */
 private int currentPage = 1;
 /** 要分页对象 */
 private List<?> pageObjects;

 public int getCurrentCursor() {
  return pageShowNum * (currentPage - 1);
 }

 /**
  * 拿到当前页面对象
  *
  * @return
  * @throws Exception
  */

 public int getCurrentPage() {
  if (currentPage <= 0) {
   currentPage = 1;
  }
  if (currentPage > getTotalPages()) {
   currentPage = getTotalPages();
  }
  return currentPage;
 }

 public List<?> getPageObjects() {
  return pageObjects;
 }

 public int getPageShowNum() {
  return pageShowNum;
 }

 public int getRecordSize() {
  return recordSize;
 }

 /**
  * 拿到总页数
  *
  * @return
  */
 public int getTotalPages() {

  if (recordSize > 0) {
   totalPages = recordSize % getPageShowNum() == 0 ? recordSize
     / getPageShowNum() : recordSize / getPageShowNum() + 1;
  }
  return totalPages;
 }

 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }

 public void setPageObjects(List<?> pageObjects) {
  this.pageObjects = pageObjects;
 }

 public void setPageShowNum(int pageShowNum) {
  this.pageShowNum = pageShowNum;
 }

 public void setRecordSize(int recordSize) {
  this.recordSize = recordSize;
 }

 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }

}

 

DAO中用于查询

public List<?> getObjectsByPagination(final String sql, final int first,
   final int size, final Class entityClass_) throws DaoException {

  try {
   return super.getHibernateTemplate().executeFind(
     new HibernateCallback() {

      @Override
      public Object doInHibernate(Session session)
        throws HibernateException, SQLException {
       Query query = null;
       if (null == entityClass_) {
        query = session.createQuery(sql);
       } else {
        query = session.createSQLQuery(sql).addEntity(
          entityClass_);
       }

       query.setFirstResult(first);
       query.setMaxResults(size);
       return query.list();
      }
     });

  } catch (Exception e) {
   log.error(e);
   this.saveLog(new LogEntity(new Date(), "", e + ""));
   throw new DaoException(RCUDError.search_error + e);
  }
 }

 

Service中将条件做判断,并查询数据的多少

isnull(cpValue);
  // 组装SQL
  SqlCriteria sqlCriteria = createSqlCriteria(cpValue);
  try {
   int size = this.baseDao.getSize("select count(*) from ("
     + sqlCriteria.toString() + " )");
   if (size <= 0) {
    return null;
   } else {
    page.setRecordSize(size);
   }
  } catch (Exception e) {
   log.error(e);
   throw new SimpleException(e.getMessage());
  }

  @SuppressWarnings("unchecked")
  List<CpFlightRouteEntity> cps = super.getObjectsByCondition(
    sqlCriteria, page, CpFlightRouteEntity.class);
  if (null == cps || cps.isEmpty()) {
   return null;
  }

 

分享到:
评论

相关推荐

    Hibernate分页查询小结

    Hibernate分页查询小结

    Hibernate分页查询原理解读

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

    hibernate分页查询 数据库连接

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

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

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

    hibernate分页查询

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

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

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

    hibernate分页代码

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

    Struts + Hibernate 分页实现

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

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

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

    Struts和Hibernate分页及查询

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

    使用hibernate分页查询

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

    hibernate分页技巧

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

    Hibernate 分页查询效果

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

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

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

    hibernate实现分页

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

    struts+hibernate分页

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

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

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

    hibernate分页例子.rar

    本教程将通过一个具体的“hibernate分页例子”来深入理解如何在Hibernate中实现分页功能。 在实际应用中,当数据量大到一定程度时,一次性加载所有数据会导致内存压力过大,影响系统性能。因此,分页查询成为一种...

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

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

Global site tag (gtag.js) - Google Analytics