`

基于HibernateDaoSupport的三个翻页方法

    博客分类:
  • java
阅读更多
package com.lbx.chat.paging;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * 基于HibernateDaoSupport的三个分页控制方法
 * @author Administrator
 *
 */
public class PageDaoHibernateDaoSupport extends HibernateDaoSupport {

	/**
	 * 使用HQL语句进行分页查询操作
	 * offset 第一条记录的索引
	 * pageSize 每页需要显示的记录数
	 * @return 当前页的所有记录
	 */
	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语句进行分页查询操作
	 * value 如果HQL有一个参数需要传人,则value就是传人的参数
	 * offset 第一条记录的索引
	 * pageSize 每页需要显示的记录数
	 * @return 当前页的所有记录
	 */
	public List findByPage(final String hql, final Object value,  final int offset, final int pageSize){
//System.out.println("PageDaoHibernate.findByPage()");
		List list = getHibernateTemplate().executeFind(new HibernateCallback() {
			
			public Object doInHibernate(Session session) throws HibernateException,
					SQLException {
				List result = session.createQuery(hql).setFirstResult(offset)
								.setParameter(0, value)
								.setMaxResults(pageSize)
								.list();
				return result;
			}
		});
		return list;
	}
	
	/**
	 * 使用HQL语句进行分页查询操作
	 * values 如果HQL有多个参数需要传人,则values就是传人的参数数组
	 * offset 第一条记录的索引
	 * pageSize 每页需要显示的记录数
	 * @return 当前页的所有记录
	 */
	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;
	}

}
分享到:
评论

相关推荐

    HibernateDaoSupport 与@Autowired

    对于`自定义HibernateDaoSupport`这个文件,可能包含了开发者根据自身需求对`HibernateDaoSupport`的扩展,例如增加特定的查询方法或优化某些操作。这展示了开发者如何在标准库基础上进行定制化开发,以满足项目的...

    HibernateDaoSupport的使用

    1. 提供SessionFactory注入:`HibernateDaoSupport`有一个`setSessionFactory(SessionFactory sessionFactory)`方法,用于注入SessionFactory对象。SessionFactory是Hibernate的核心组件,负责创建Session实例。 2....

    hibernateDaoSupport类的运用实例

    本文将详细介绍`hibernateDaoSupport`的使用方法,并通过一个具体的示例来说明其在项目中的应用。 #### 二、`hibernateDaoSupport`类的核心功能 `hibernateDaoSupport`类提供了以下几个核心功能: 1. **...

    HibernateDaoSupport分页.

    在上述代码中,我们定义了三个`findByPage`方法,分别对应不同场景下的分页查询: - 第一个方法接受HQL(Hibernate Query Language)语句、偏移量`offset`以及每页大小`pageSize`作为参数。 - 第二个方法除了HQL...

    spring 理解文件HibernateDaoSupport

    `HibernateDaoSupport`是Spring提供的一个抽象类,用于支持Hibernate操作。当使用这个抽象类时,子类可以通过调用`getHibernateTemplate()`方法获得`HibernateTemplate`实例,进而执行数据库操作。 **示例代码**: ...

    HibernateDaoSupport二次封装组件,快速统计和查询,修改

    `HibernateDaoSupport`是Spring框架中为Hibernate提供的一个辅助类,用于简化DAO(数据访问对象)层的开发。本文将深入探讨`HibernateDaoSupport`的二次封装,以及如何通过封装来实现快速的统计、查询、修改和删除...

    HibernateDaoSupport 源码

    Spring hibernate3. HibernateDaoSupport 源码

    HibernateDaoSupport 类的jar

    HibernateDaoSupport 类的jar HibernateDao 的jar

    SSH整合(其中dao用extends HibernateDaoSupport方式)总结【图解】

    SSH整合(其中dao用extends HibernateDaoSupport方式)总结【图解】

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    为每个数据源创建一个事务管理器,并在需要使用特定数据源的方法上添加对应的事务管理器注解。例如: ```java @Configuration @EnableTransactionManagement public class DataSourceConfig { @Primary @Bean...

    HibernateDaoSupport.docx

    【HibernateDaoSupport】是Spring框架中的一个抽象类,主要用于简化Hibernate的数据访问操作,它为DAO层提供了方便的事务管理和Session管理。这个类是Spring与Hibernate集成的重要组件,尤其对于初学者来说,理解其...

    hibernateTemplate和HibernateDaoSupport

    hibernateTemplate 和 HibernateDaoSupport 是 Spring 框架中针对 Hibernate 数据库访问层的两个重要组件,它们简化了基于 Hibernate 的数据操作,使得开发者能够更高效地进行 CRUD(创建、读取、更新、删除)操作。...

    hibernateDaoSupport.txt

    2. **实现具体DAO类**:基于这个基本DAO接口,开发者可以实现具体的DAO类。这些类通过继承`HibernateDaoSupport`或类似类来实现数据访问逻辑。这样做的好处在于,具体DAO类只需要关注业务逻辑的实现,而不需要关心...

    HibernateDaoSupport与JdbcDaoSupport

    该类为子类提供了一个名为`hibernateTemplate`的属性,可以通过它调用一系列预定义的方法来进行数据库操作(如查询、更新等)。 - **示例代码**: ```java public class TestA extends HibernateDaoSupport { ...

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

    java基于SSH框架的学生成绩管理系统源码。要求: (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的...

    JPA(hibernate) Dao 和 DaoSupport

    继承自`DaoSupport`的DAO类可以利用其提供的便利方法,如`getJdbcTemplate()`或`getHibernateTemplate()`,来简化数据库操作。不过,现在更推荐使用Spring Data JPA,它提供了更高级别的抽象,减少了手动编写DAO层...

    基于注解整合spring与hibernate

    在实际项目中,我们通常会创建一个基类,比如`AbstractHibernateDao&lt;T&gt;`,它继承自`HibernateDaoSupport`,并提供通用的DAO方法。然后,每个特定实体的DAO类可以继承这个基类,通过泛型指定对应的实体类型。 最后,...

    Spring+Hibernate实现增删改查的两种方法

    HibernateTemplate是Spring提供的一个方便的类,它简化了与Hibernate的交互,通过预定义的方法封装了常见的Hibernate操作。使用HibernateTemplate时,你需要继承Spring的HibernateDaoSupport类,并注入...

    重写Spring的HibernateDaoSupport 简化Dao层写法

    NULL 博文链接:https://wxinpeng.iteye.com/blog/1162157

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

    1. `queryForPage` 方法接受三个参数:HQL(Hibernate Query Language)查询语句、开始记录的偏移量(offset)和每次查询的记录数(length)。该方法返回一个List对象,包含指定范围内的数据。 2. `getAllRowCount` ...

Global site tag (gtag.js) - Google Analytics