/**
* 分页查询数据(采用SQL注入的方式)
*
* @param hql
* :查询数据
* @param conditions
* :为需要查询的条件
* @param page
* :当前页码
* @param pageSize
* :每页多少行数据
* @return
*/
public List getSelectResult(String hql, int page, int pageSize) {
final String hsql = hql;
final int startRow = (page - 1) * pageSize; // 得到开始的行数
final int endRow = page * pageSize;// 得到结束的行数
List list = hibernateTemplate.executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hsql);
query.setFirstResult(startRow);
query.setMaxResults(endRow);
List list = query.list();
return list;
}
});
return list;
}
/**
* 分页查询数据(采用Criteria的方式)
*
* @param criteria为DetachedCriteria类型的条件
* @param conditions
* :为需要查询的条件
* @param page
* :当前页码
* @param pageSize
* :每页多少行数据
* @return
*/
public List getCriteriaSelectResult(DetachedCriteria criteria, int page,
int pageSize) {
int startRow = (page - 1) * pageSize; // 得到开始的行数
int endRow = page * pageSize;// 得到结束的行数
return hibernateTemplate.findByCriteria(criteria, startRow, endRow);
}
分享到:
相关推荐
公司的大部分项目都开始使用IBatis作为O/R Mapping了,但是在使用的过程中也发现了很多不方便和存在...想了很多办法,都没能很好的避免这个问题,无意间在javaeye上看到了《使ibatis支持hibernate式的物理分页》这篇文章,
针对iBatis的这一局限,我们可以尝试在不修改iBatis源码的情况下,引入类似于Hibernate的物理分页机制。这个过程主要涉及对SQL执行流程的拦截和改造。首先,我们需要了解iBatis执行SQL的关键类——`...
通过上述分析可以看出,该通用分页方法充分利用了Struts、Spring 和 Hibernate 的优势,通过清晰的层次划分实现了高效的物理分页功能。这种分页策略不仅适用于当前的示例场景,也具有一定的通用性,可以应用于其他...
Mybatis的自带分页方法只是逻辑分页,如果数据量很大,内存会溢出, 不知道为什么开源组织不在里面实现类似Hibernate的物理分页处理方法。 在不改动Mybatis源代码的情况下实现Mybatis支持物理分页
【标题】:“利用Mybatis的动态SQL实现物理分页” 【描述】:本文主要探讨了在实际项目中如何利用Mybatis的动态SQL功能来解决大数据量下的物理分页问题,以避免内存溢出。 【标签】:“SQL 数据库 数据处理 参考...
本文将详细讲解如何在Hibernate中实现真分页(物理分页)和假分页(逻辑分页)。 首先,我们来了解什么是真分页和假分页。假分页,也称为内存分页,它一次性加载所有数据到内存中,然后通过索引进行分页显示,这种...
此外,对于大数据量的分页,可能需要考虑采用物理分页而非内存分页,以避免一次性加载大量数据导致内存溢出。 总之,SSH框架集成提供了强大的功能,使得开发者能够高效地构建复杂的企业级应用。分页作为常见的数据...
在多数情况下不及特定数据库支持的物理分页,而hibernate的分页则是直接组装sql,充分利用了特定数据库的分页机制,效率相 对较高。本文讲述的就是如何在不重新编译ibatis源码的前提下,为ibatis引入hibernate式的...
【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...
- **构建查询**:Lucene查询和Hibernate Search查询的构造方法,包括通用查询、分页、排序和结果获取策略。 - **结果处理**:考虑性能因素,控制结果集大小,使用结果转换器,并理解查询结果。 - **过滤器**:基于...
Struts2 Spring3.0 Hibernate3.3 全注解配置,避免了大量业务类在Spring文件的配置,整合了DWR3.0,displayTag 物理分页技术的实现。树形菜单。 另外数据库,在下一个资源;由于20MB的限制。 有问题的话留言。
1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 ...
在数据库层面,这通常涉及软删除(设置删除标记)或硬删除(物理删除记录),以防止数据丢失。 ### 2. 数据库设计 数据库设计是留言板系统的基础,这里我们使用了MySQL5.0作为数据库。有两个关键表:`userinfo` 和...
物理分页是SSH框架中常用的方法,它利用Hibernate的查询功能实现。每次只查询数据库中的一小部分数据,即一页的数据。分页参数包括当前页码和每页显示的记录数。在执行查询前,需要先计算出总记录数,然后根据这些...
3. 分页查询:通过Query的setFirstResult()和setMaxResults()方法实现分页。 4. 软删除:通过逻辑删除而不是物理删除,保持数据库数据完整。 5. 批量操作:优化大量数据的插入、更新和删除,如bulk update和bulk ...
1. **基于SQL的物理分页**:在SQL查询中直接指定LIMIT和OFFSET来获取指定范围的数据,这种方法简单直观,但当数据量大时,效率较低,因为每次查询都需要计算OFFSET,可能导致性能瓶颈。 2. **使用Hibernate的 ...
对于大数据量的场景,通常会采用“真分页”(物理分页),即每次只从数据库查询一部分数据,减少内存压力。 在实际开发中,我们还可以结合缓存机制,如Hibernate的二级缓存,进一步优化性能。此外,现代的Web开发...
假分页不同于传统的物理分页,它不预先计算和生成所有页面,而是根据用户的滚动行为动态加载更多数据。本教程将围绕Struts2和Hibernate框架,讲解如何实现页面列表的假分页。 **一、Struts2框架简介** Struts2是一...
逻辑分页不同于物理分页,物理分页是在数据库层面进行数据切片,而逻辑分页则是在应用程序层面上实现,通常通过查询全部数据并按需显示每一页的数据。 这篇博客“java逻辑分页”可能详细介绍了如何在Java应用中实现...
1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 ...