`

HQL接口分页查询

阅读更多

 

如下Query提供的方法可以实现分页:

 

1. setFirstResult

 

    从第几条开始取记录

 

2. setMaxResult

  

    一次取多少条记录

 

 

使用此方法进行分页,具有可移植性,下面写一段代码:

 

HibernateUtil.java

private static final SessionFactory sessionFactory;

static {

      sessionFactory = new configuration.buildSessoinFactory();
     //如果在hibernate.cfg.xml中配置过的话(<mapping resource="com/sidi/vo/UserBean.hbm.xml" />)
     //sessionFactory = new configuration().configure().buildSessoinFactory();
}

private HibernateUtil () {

}

publicv static SessionFactory getFactory () {

       return sessionFactory;
}

 

 

hibernate.properties

hibernate.current_session_content_class thread;

 

 

new action:listUser

execute () {

      String target = "success";

      String pageStr = request.getParameter ("page");

      int page = 1;

      try {

           page = Integer.parseInt (pageStr);

      } catch (NumberFormatException e) {

           page = 1;
      }

      SessionFactory factory = HibernateUtil.getFactory ();
      Session session = null;

      try {

           session = factory.getCurrentSession();
           session.beginTransaction();

           Query q = session.creatQuery("from UserBean")
                 .setFirstResult(page-1)*5
                 .setMaxResults(5);
           List list = q.list();

           q = session.creatQuery("select count(*) from UserBean");

           Integer i = (Integer)q.uniqueResult();
           Integer totalpage = new Integer((i.intValue()+4)/5);

           request.setAttribute("list",list);
           request.setAttribute("totalpage",totalpage);
           request.setAttribute("page",new Integer(page));

       } catch (HibernateExeception e) {

              session.getTranction().rollback();
              e.printStackTrace();
              throw e;

       } finally {

            if (session!=null) {

                 session.close();
                 session = null;
            }
       }

       return mapping.findForward(target);
}

 

 

listuser.jsp

<table align="center">
<logic:iterate id="user" name="list">
<tr>
    <td>${user.id}</td>
    <td>${user.name}</td>
    <td>${user.pw}</td>
</tr>
</logic:iterate>
</table>

分页部分
    <table align="center">
   <tr>
    <td><a href="listUser.do">首页</a></td>

    <td><logic:lessEqual name="page" value="1">上一页</logic:lessEqual></td>
    <td><logic:greaterThan name="page" value="1"><a href="listUser.do?page=${page-1}">上一页

</a></logic:greaterThan></td>

    
    <td><logic:lessEqual name="page" value="${totalpage}"><a href="listUser.do?

page=${page+1}">下一页</a></logic:lessEqual></td>
   <td><logic:greaterThan name="page" value="${totalpage}">下一页</logic:greaterThan></td>

    <td><a href="listUser.do?page=${totalPage}">尾页</a></td>
</tr>
</table>

 

分享到:
评论

相关推荐

    hql分页

    在处理大数据量的查询时,分页查询显得尤为重要,因为它避免一次性加载所有数据导致内存溢出和性能下降。 1. **分页基础** 在HQL中,可以使用`setFirstResult()`和`setMaxResults()`方法进行分页。`setFirstResult...

    Hibernate HQL命名参数和Query接口的分页

    本篇将详细讲解HQL中的命名参数以及如何通过Query接口实现分页查询,这对于开发大型数据应用来说是至关重要的。 首先,我们来看HQL中的命名参数。在编写HQL查询语句时,我们可以使用`:paramName`的方式来定义参数,...

    SSh sql/hql 分页

    - **使用HQL进行分页查询**: ```java Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); Query query = session.createQuery("from YourEntity e"); query.setFirstResult(...

    JPA分页查询与条件分页查询

    分页查询是JPA的一个重要特性,Spring Data JPA通过提供`Pageable`接口来支持这一功能。`Pageable`接口包含了分页所需的必要信息,如当前页数、每页大小和排序规则。你可以通过调用`Pageable`的`Pageable.next()`、`...

    分页查询

    1. Spring Data JPA:提供PagingAndSortingRepository接口,通过Pageable对象来实现分页查询,包括排序功能。 2. MyBatis:在MyBatis中,可以通过设置Mapper XML的limit和offset属性或使用ResultHandler接口实现分页...

    hibernate分页查询功能

    UserDao接口定义了分页查询的方法,通过`getUser(int offset, int length)`接收起始位置(offset)和每页显示的数量(length),返回一个User对象的ArrayList。此外还有一个`getAllRowCount()`方法用于获取所有记录...

    基于SSH架构的分页查询标签的研究与实现

    本文介绍了一种基于SSH(Struts + Spring + Hibernate)架构的分页查询解决方案,通过利用JSP自定义标签技术和Hibernate Query Language (HQL),实现了分页查询功能的高度封装,使得分页查询变得简单、高效且易于...

    Hibernate分页查询

    在Web开发中,数据分页查询是一个常见的需求,它能够帮助用户更有效地浏览大量信息,而Hibernate作为一款流行的Java ORM框架,提供了方便的分页查询功能。本篇将详细讲解如何在Hibernate中进行分页查询,并结合...

    Hibernate中分页查询的封装。

    在实际项目中,我们还可以通过Spring Data JPA的Pageable接口或者MyBatis的PageHelper插件来更方便地实现分页查询。这些工具或框架提供了更高级的分页功能,例如排序、缓存等。 总的来说,Hibernate的分页查询封装...

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

    在这个类中,我们可以通过编写Hibernate HQL或SQL查询语句来实现分页查询。 4. **Struts2 Action** 在Action类中,我们需要处理来自用户的请求参数,如当前页码和每页显示记录数等,并调用DAO中的分页查询方法获取...

    Struts和Hibernate分页及查询

    3. **编写DAO层**:定义数据访问对象(DAO)接口及其实现,这些方法通常包括增删改查以及分页查询。分页查询可能涉及到`setFirstResult()`和`setMaxResults()`这两个Hibernate的Query方法,它们分别设置查询的起始...

    struts2+spring+hibernate分页查询

    Spring提供了Pageable接口和Page对象,可以方便地实现分页查询。在Service层,我们可以利用Spring Data JPA或MyBatis等持久层框架提供的方法,配合Pageable接口来获取分页数据。Page对象包含了分页信息,如总页数、...

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

    这个压缩包提供的案例是这三个框架的整合使用,涵盖了基本的CRUD(创建、读取、更新、删除)操作,并且包含了分页查询的功能。下面将详细讲解这些知识点。 1. **Spring MVC** - Spring MVC是Spring框架的一个模块...

    SSH实现分页实例

    2. 在Spring配置中定义Service,注入SessionFactory,实现分页查询。 3. 使用Hibernate的HQL或Criteria查询实现数据库的分页操作。 4. 将分页结果传递给视图层,展示数据并生成分页导航。 5. 如有MyBatis参与,需...

    Hibernate+Struts+Spring 实现的通用分页查询

    接着,定义了一个分页查询的接口`IPageModelDao.java`,它声明了一个`queryPage`方法,接收HQL(Hibernate Query Language)查询语句、当前页数和每页记录数作为参数,返回一个`PageModel`对象。这个接口定义了分页...

    HQL的具体内容和使用

    HQL支持多种查询方式,包括对象查询、属性查询、参数查询、关联查询、分页查询、统计函数查询以及原生SQL查询。 在HQL中,查询的目标是对象,而不是数据库表,条件通常是对象的属性。例如,`from Student s`会查询...

    HibernateDaoSupport分页.

    这段代码实现了基于`findAllByPage`方法的分页查询逻辑,它计算出当前页面的起始索引`start`,然后调用之前定义的`findByPage`方法进行分页查询。 #### 三、总结 通过以上分析可以看出,利用`HibernateDaoSupport`...

    ssh的例子实现了分页的查询

    在`UserDAOImpl`中,我们可以使用Hibernate的Session对象执行HQL(Hibernate查询语言)或者SQL语句,实现分页查询。例如: ```java public List&lt;User&gt; listUsersByPage(int currentPage, int pageSize) { Session ...

    HQL语法入门学习HQL语法入门学习

    - 这两个方法用于实现分页查询,`setFirstResult`设置查询结果的起始位置,`setMaxResults`设置每页的记录数。 **HQL的使用步骤** 1. **获取Session**: 首先,需要通过HibernateUtil获取到Session对象,它是与...

    Struts_Spring_Hibernate_CRUD操作案例_-分页查询

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

Global site tag (gtag.js) - Google Analytics