`

使用hql 语句进行分页查询操作

 
阅读更多

 /**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    List result
= session.createQuery(hql)
                                         .setFirstResult(offset)
                                         .setMaxResults(pageSize)
                                         .list();
                   
return result;
                }
            });
       
return list;
    }


   
/**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param value 如果hql有一个参数需要传入,value就是传入的参数
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql , final Object value ,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    List result
= session.createQuery(hql)
                                         .setParameter(
0, value)
                                         .setFirstResult(offset)
                                         .setMaxResults(pageSize)
                                         .list();
                   
return result;
                }
            });
       
return list;
    }


   
/**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param values 如果hql有多个个参数需要传入,values就是传入的参数数组
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql, final Object[] values,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    Query query
= session.createQuery(hql);
                   
for (int i = 0 ; i < values.length ; i++)
                    {
                        query.setParameter( i, values[i]);
                    }
                    List result
= query.setFirstResult(offset)
                                       .setMaxResults(pageSize)
                                       .list();
                   
return result;
                }
            });
       
return list;
    }
       
}

分享到:
评论

相关推荐

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。

    hql语句 使用大全

    ### HQL语句使用大全 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. ...

    Hibernate HQL查询 分页查询 模糊查询.docx

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...

    Hibernate 多表连接分页查询示范项目

    项目通过 Hibernate Criteria API 展示了如何进行多表连接查询,并结合分页功能,有效地获取和展示相关数据。项目源码会详细展示如何创建 Criteria 查询,如何设置 JOIN 条件,以及如何实现分页。 **具体步骤** 1....

    Spring中hql语句的常用方法

    ### Spring框架中HQL语句的使用方法 在学习Spring框架与Hibernate集成的过程中,掌握HQL(Hibernate Query Language)的使用方法是十分重要的。本文档将详细介绍如何在Spring环境中运用HQL进行数据查询操作,包括...

    hql分页

    在HQL中,可以使用`setFirstResult()`和`setMaxResults()`方法进行分页。`setFirstResult()`设置从第几个结果开始获取,`setMaxResults()`设置最多获取多少个结果。例如: ```java Query query = session....

    SSh sql/hql 分页

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

    HQL语句的用法

    HQL还支持排序(order by)、分页(first result和max results)、类型转换(cast)、集合操作(in、any、all、some)等高级特性,使得它能够处理复杂的查询需求。 总之,HQL作为Hibernate的一部分,提供了强大的...

    Hibernate 经常用的一些HQL语句

    标题:“Hibernate 经常用的一些HQL语句” 描述:“可以让我们更方便的学习Hibernate” ### HQL(Hibernate Query Language)在Hibernate中的应用 HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的...

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

    在这个场景中,我们将探讨如何使用JPA进行分页查询以及带有条件的分页查询。 首先,为了使用Spring Data JPA,我们需要在项目中引入相应的依赖。在Maven的pom.xml文件中,你需要添加`spring-boot-starter-data-jpa`...

    hql criteria分页

    在Hibernate中使用HQL进行分页查询主要依赖于`setFirstResult()`和`setMaxResults()`两个方法。其中: - `setFirstResult(int offset)`: 设置查询的起始位置。 - `setMaxResults(int maxResults)`: 设置查询的最大...

    HQL的具体内容和使用

    Hibernate Query Language(HQL)是Hibernate框架中专用于对象关系映射(ORM)的查询语言,它使得开发者能够以面向对象的方式来查询...掌握HQL可以帮助我们在使用Hibernate进行ORM开发时更加高效地进行数据查询和操作。

    hibernate的HQL的模糊查询

    在HQL中,我们可以使用`like`关键字来进行模糊查询。`like`关键字后面可以跟一个包含通配符的字符串。常见的通配符有: - `%`:代表零个、一个或多个任意字符。 - `_`:代表一个任意字符。 例如,如果我们有一个`...

    hibernateHQL基本查询

    与传统的 JDBC 方式相比,使用 HQL 进行数据库查询更加便捷、高效且易于维护。 #### 二、HQL 与 SQL 的区别 - **面向对象**:HQL 主要是基于对象的查询,而 SQL 是基于表的查询。 - **语法差异**:虽然 HQL 的语法...

    ssh实现简单的分页查询

    - 在DAO层,使用Criteria API或HQL编写分页查询语句。例如,使用`setFirstResult()`设置开始位置(即当前页的第一条记录在所有记录中的位置)和`setMaxResults()`设置每页的记录数。 - 执行查询后,返回结果集给...

    数据分页以及高级查询

    添加商品可能涉及到数据库的插入操作,需要编写SQL INSERT语句或使用ORM框架的API。删除商品则对应数据库的DELETE操作,同样可以通过SQL或ORM框架来完成。同时,这些操作通常需要考虑事务管理,确保数据的一致性。 ...

    Hibernate 分页查询效果

    首先,Hibernate是一个优秀的Java持久化框架,它提供了ORM(对象关系映射)解决方案,使得开发者可以使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。分页查询是Hibernate中常用的一种功能,用于在大量...

    hibernate分页查询 数据库连接

    本篇将深入探讨Hibernate中的分页查询功能以及它如何处理数据库连接,帮助你更有效地管理大数据量的查询操作。 首先,我们来看一下什么是分页查询。在Web应用中,当用户需要浏览大量数据时,一次性加载所有数据不仅...

    利用Struts2+Hibernate+maven进行分页查询

    在分页查询中,我们将使用Hibernate的Criteria或HQL(Hibernate Query Language)来构造查询语句,这些查询可以带有分页参数,如当前页码和每页记录数。Hibernate会自动处理SQL的生成和执行,极大地减少了手动编写...

Global site tag (gtag.js) - Google Analytics