Hibernate页面数据分页显示

简介:

package com.huike.hidp.util;

 

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.support.HibernateDaoSupport;

/**

 * 页面数据分页显示

 * @author

 

 * @date 2009-5

 */

public class PaginationHibernateDaoSupport extends HibernateDaoSupport {

 

/**

 * 使用hql语句进行分页查询

 * @param hql 需要查询的hql语句

 * @param offset 第一条记录索引

 

 * @param pageSize 每页需要显示的记录条数

 * @return 当前页的所有记录

 

 */

public List findByPage(final String hql,final int offset,final int pageSize){

//通过一个HibernateCallback 对象来执行查询

 

List list = getHibernateTemplate().executeFind(new HibernateCallback()

{

//实现hibernateCallback接口必须实现的方法

 

public Object doInHibernate(Session session) throws HibernateException{

//执行hibernate 分页查询

List result = session.createQuery(hql)

                     .setFirstResult(offset)

                     .setMaxResults(pageSize)

                     .list();

return result;

}

}

);

return list;

}

/**

 * 使用hql语句进行分页查询

 * @param hql 需要查询的hql语句

 * @param value 如果hql 有一个参数需要传入,value就是传入Hql语句的参数

 

 * @param offset 第一条记录索引

 

 * @param pageSize 每页需要显示的记录条数

 * @return 当前页的所有记录

 

 */

public List findByPage(final String hql,final Object value,

               final int offset,final int pageSize){

//通过一个HibernateCallback 对象来执行查询

 

List list = getHibernateTemplate().executeFind(new HibernateCallback()

{

//实现hibernateCallback接口必须实现的方法

 

public Object doInHibernate(Session session) throws HibernateException{

//执行hibernate 分页查询

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 就是传入hql的参数组 

 * @param offset 第一条记录索引

 

 * @param pageSize 每页需要显示的记录条数

 * @return 当前页的所有记录

 

 */

public List findByPage(final String hql,final Object[] values,

               final int offset,final int pageSize){

//通过一个HibernateCallback 对象来执行查询

 

List list = getHibernateTemplate().executeFind(new HibernateCallback()

{

//实现hibernateCallback接口必须实现的方法

 

public Object doInHibernate(Session session) throws HibernateException{

//执行hibernate 分页查询

Query query = session.createQuery(hql);

//为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;

}

}

相关文章
|
1月前
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
9 0
|
11月前
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
58 0
|
安全 Java 应用服务中间件
Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0、Spring CVEs、JReleaser 1.0-RC2
本期 Java 近期新闻综述内容涉及 JDK 19、Spring Boot、Spring CVEs、Apache Tomcat 点版本、Quarkus Tools for Visual Studio Code、Micronaut 3.4.1、JetBrains 加入 Micronaut 基金会、Open Liberty Paketo Liberty Buildpack、Hibernate 6.0、JobRunr 5.0、WildFly 26.1 Beta S2I 镜像、JReleaser 1.0-RC2、MicroStream 7.0-M2、JHipster 7.8.0、JMH 1.35。
782 0
|
17天前
|
SQL Java 数据库连接
jpa、hibernate、spring-data-jpa、jdbcTemplate
jpa、hibernate、spring-data-jpa、jdbcTemplate
|
4月前
|
存储 Java 数据库连接
Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析
Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易,而且它还是轻量级的、易于启动和停止的,易于配置。
67 0
|
4月前
|
XML Java 数据库连接
Hibernate与Spring整合实践实例
Hibernate与Spring整合实践实例
40 0
|
7月前
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
|
9月前
|
Java 数据库连接 数据库
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
48 0
|
XML Java 关系型数据库
Spring 项目快速整合 Hibernate
前言 Hibernate 作为前些年广为流行的 ORM 框架,Spring 在诞生之初也进行了支持,并且抽象出一个 spring-orm 模块。
426 0
|
JavaScript Java 数据库连接
spring对hibernate的集成中的回调(CallBack)机制
spring对hibernate的集成中的回调(CallBack)机制
166 0
spring对hibernate的集成中的回调(CallBack)机制