0 0

Hibernate分页3

给位大侠

    小弟的Hibernate的分页技术实在是搞不懂啊!我连思维都没有

   希望给位能给小弟我一点头绪
问题补充:
你的意思我懂

   但是我不知道怎么把一个List返回到JSP页面

  然后在开始分页,而分页中的上或下页我都不很明白
问题补充:
不行啊

   我这样式过
2009年10月21日 10:30

15个答案 按时间排序 按投票排序

0 0

这些算法题要抓住规律,不行的话在纸上画画,然后推断出一条通用的算法表达式,OK

2009年11月05日 16:59
0 0

一通百通,先用Jdbc自己实现下,搞通的话别的例题都是小case。
如果根本的算法没搞懂,那用hibernate也够呛。
主要的几个参数:
当前页 currentPage
总页数 totalPage
每页的记录数 pageSize
其他都是算法。

2009年11月05日 16:57
0 0

条,    :a:

2009年10月25日 15:28
0 0

我之前用的是struts1+spring+hibernate做的一个小项目,我用的分页代码你参考一一下:http://www.netded.com/read-htm-tid-4336.html

2009年10月23日 07:31
0 0

先别想Hibernate,先去搞个jdbc分页,把分页搞清楚了,再去看Hibernate,那不过是换一种简单点儿的实现方式,本质不变的

2009年10月22日 22:57
0 0

我也来说两句,
分页就是把一整个数据集分成几份来显示,每一份显示几条,你先想清楚,你每一份有几条数据,然后再拿张纸拿张笔,来算,第一份是从第几条开始,到第几条结束,第二份从第几条开始,到第几条结束,这个每一份显示几条呢,就是大家说的pageSize,第一份,第二份。。。。。这个第几份呢,就是第几页,而上一页呢,就是比如我现在到了第二页,我想去看第一页的数据,那是不是当前的页减一,就成了第一页了,对吧,这是有规律的,你从数据库里面拿出来的只是当前要显示的数据,和总共的数据量,至于当前第几页,从第几条开始显示,都是你自己算出来的,与数据库无关,你拿到当前要显示的数据集后,就是一个List,把这个List可以先放到一个自定义对象中再放到request中,也可以直接放到request中,都可以,这个List中的每一个元素就是一个对象(因为你用的是Hibernate),这个对象就是与你查询的表相映射的那个对象,然后在jsp页面中就从request中拿出这个集合(知道怎么拿吧,不知道就去学jsp),再使用jstl或者是其他的循环标签,基本上就可以使用了,应该能看得懂吧

2009年10月22日 22:55
0 0

给你推荐一篇文章是robbin在05年写的,后面有几个跟帖的也都有很大的学习和参考价值,http://www.iteye.com/topic/14657,我现在用的分页是在把这个帖子和跟帖看了好多遍之后做出来的

2009年10月22日 22:24
0 0

可以使用这个分页的类作为辅助,设置当前页(currentPage)每页显示记录数(pageSize),再设置总记录数(recordCount)

import java.util.List;

public class Page {

	private int pageSize;
	private int currentPage;
	private int pageCount;
	private int recordCount;
	private int nextPage;
	private int beforePage;
	private List result;
	
	public List getResult() {
		return result;
	}
	public void setResult(List result) {
		this.result = result;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getCurrentPage() {
		return currentPage;
	}
	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}
	public int getPageCount() {
		return pageCount;
	}
	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}
	public int getRecordCount() {
		return recordCount;
	}
	public void setRecordCount(int recordCount) {
		this.recordCount = recordCount;
		if (recordCount % this.pageSize == 0) {
			this.pageCount = recordCount / this.pageSize;
		} else {
			this.pageCount = recordCount / this.pageSize + 1;
		}
		if (this.pageCount == 1) {
			this.nextPage = 1;
			this.beforePage = 1;
			this.currentPage = 1;
		} else if (this.currentPage >= this.pageCount) {
			this.currentPage = this.pageCount;
			this.nextPage = this.pageCount;
			this.beforePage = this.pageCount - 1;
		} else if (this.currentPage < 1) {
			this.currentPage = 1;
			this.beforePage = 1;
			this.nextPage = 2;
		} else {
			if (this.currentPage == 1) {
				this.beforePage = 1;
			} else {
				this.beforePage = this.currentPage - 1;
			}
			this.nextPage = this.currentPage + 1;
		}
	}
	public int getNextPage() {
		return nextPage;
	}
	public void setNextPage(int nextPage) {
		this.nextPage = nextPage;
	}
	public int getBeforePage() {
		return beforePage;
	}
	public void setBeforePage(int beforePage) {
		this.beforePage = beforePage;
	}
}

2009年10月21日 16:15
0 0

我最喜欢传递以下三个参数
start从那里开始分;limit这一页分多少个;total总记录数

这个我特别喜欢,清楚,有了这三个参数,其余的多少页,开始页都可以算得出来。
hibernate中用的的参数就是start和limit
你要是不理解,最好自己写例子,就传递这三个参数,然后在页面中计算出来其余的值。。

2009年10月21日 15:28
0 0

我晕。我已经说的很明白了。 你不要急,要慢慢的去理解,一开始是有点抽象。你得知道页面需要几个参数,之后根据这几个参数算出FirstResult,MaxResults,之后传给HIBERNATE就行了。

2009年10月21日 15:19
0 0

看来哥们都给你说的很明白了。小弟也就不在言辞了。

2009年10月21日 10:58
0 0

对不起,上面写错了。


 intRowCount = blogPassageService.total("order by id");// 获得总行数  
        total = (intRowCount / 5)+1;// 总页数 等于总行数除以每页显示的行数(5).  
        if (total <= 0)  
            total = 1;  
  
        if (pageNo > total)  
            pageNo = total;  
            int i = (pageNo - 1) * 5;  


把20改为5。

2009年10月21日 10:52
0 0

你需要做2样事情。

第一,你需要一个PAGE对象,里面封装一些基本的参数,比如:当前的页数,下一页,上一页,总页数。

第二,你需要在JSP页面去构件一个用于交互的环境。


举例:

public String adminBlogPassageManage(){
		
		intRowCount = blogPassageService.total("order by id");// 获得总行数
		total = (intRowCount / 20)+1;// 总页数 等于总行数除以每页显示的行数(5).
		if (total <= 0)
			total = 1;

		if (pageNo > total)
			pageNo = total;
			int i = (pageNo - 1) * 20;

		int FirstResult = i;// 从当前页的首个数据开始
		int MaxResults = 20;// 从当前FirstResult自加10.
		blogPassages = blogPassageService.AdminListBlogPassageByPage(FirstResult, MaxResults,"order by catergoryId");
		return SUCCESS;
	}


这段代码显示了,根据几个参数获取页面需要的LIST。因为我用的是STRUTS2自己写的一个分页主件,所以简单了很多,但是意思都是参不多的,你到网上找找JSP分页的主件,到时候用这个思路,就可以解决问题了。

2009年10月21日 10:50
0 0

/**
	 * 基本分页方法;取得实际资源,不带查询条件,这里的 entityClass.getName()为取得对象名,如:USER对象。
	 */
	@SuppressWarnings("unchecked")
	public List resouce(Integer FirstResult,Integer MaxResults){	

        String querySentence = "from"+" "+ entityClass.getName();   
        Query query = getSession().createQuery(querySentence);   
        query.setFirstResult(FirstResult)
             .setMaxResults(MaxResults);   
        return query.list();
      }



这里有2个参数,一个是FirstResult,意思是从第几个开始,如果你要查从第一个开始,就填0(应该是从0+1开始的)。

第二个参数是,MaxResults,就是从FirstResult开始取几个。比如:如果你的FirstResult为1,那么如果你想取十个的话,那么此时的MaxResults为 FirstResult+10。

2009年10月21日 10:42
0 0

Hibernate的分页技术是透明的,,你理解最好,不能理解先用着呗。。
说白了就是查询语句中你不用写上一堆的分页语句了,Hibernate已经实现了,但最终的查询跟手工的查询没两样,oracle用的还是rownum,mysql还是用的limit。

2009年10月21日 10:40

相关推荐

    Hibernate分页查询小结

    Hibernate分页查询小结

    Hibernate分页查询原理解读

    #### 三、Hibernate分页查询实现原理 ##### 3.1 使用SQL LIMIT实现分页 对于支持LIMIT关键字的数据库(例如MySQL),Hibernate会通过特定的方言(Dialect)来生成包含LIMIT关键字的SQL语句。具体实现如下: ```...

    hibernate分页查询 数据库连接

    此外,优化查询,避免N+1查询问题,合理设计实体关系,都能有效提升Hibernate分页查询的效率。 总结起来,Hibernate的分页查询和数据库连接管理是其强大功能的重要组成部分。正确理解和使用这些特性,能够帮助...

    hibernate分页Hibernate 分页的设计和编码

    标题与描述均提到了“Hibernate分页的设计和编码”,这表明文章主要聚焦于如何在Hibernate框架中实现数据分页功能。下面将详细解析这一主题的关键知识点。 ### Hibernate分页概念 Hibernate是Java环境下一个开放源...

    hibernate分页查询

    让我们深入探讨Hibernate分页查询的相关知识点。 一、Hibernate分页原理 Hibernate分页查询基于SQL的LIMIT和OFFSET子句,通过Session的createQuery或createSQLQuery方法创建查询,并设置FirstResult和MaxResults...

    strut2.0 + hibernate3.0 + jquery.datatables+mysql 5.0实现的 hibernate分页

    hibernate分页(无排序,搜索,仅仅分页显示),服务器端分页在datatables上展现,有关 datatables的知识请关注它的官网http://www.datatables.net/,datatables的功能很 全面。 2,建表的sql--studentinfo和插入...

    hibernate分页代码

    总结起来,"hibernate分页代码"是一个关于如何在Hibernate中进行分页查询的实践示例,适用于在MyEclipse环境下运行。通过Criteria API或HQL,开发者能够方便地实现分页功能,提升应用性能,为用户提供更好的体验。...

    Struts + Hibernate 分页实现

    在"Struts + Hibernate 分页实现"这个项目中,重点在于如何在Web应用中整合这两个框架,并实现数据的分页显示。分页是大型数据集处理时常见的需求,它能够帮助用户更有效地浏览和管理大量信息,避免一次性加载所有...

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

    本篇文章将详细讲解如何在基于Struts2、Spring和Hibernate的项目中实现分页功能。 首先,我们从DAO层开始。在`MemberDao`接口中,我们定义了两个关键的方法,一个是用于分页查询,另一个是获取所有记录的数量。这两...

    Struts和Hibernate分页及查询

    在"Struts+Hibernate分页及条件查询练习"这个项目中,开发者可能采用了以下步骤: 1. **配置Struts和Hibernate**:首先,需要在项目中引入Struts和Hibernate的相关库,配置Struts的struts-config.xml文件和...

    使用hibernate分页查询

    1. **配置Hibernate分页**: 在Hibernate中,我们通常使用`Criteria`或`Query` API进行分页查询。`Criteria`提供了一种更面向对象的方式来执行SQL查询,而`Query` API则对应于原生的SQL语句。在这些API中,我们可以...

    hibernate分页技巧

    hibernate分页 博文链接:https://iomo.iteye.com/blog/243518

    Hibernate 分页查询效果

    本篇主要围绕"Hibernate分页查询效果"这一主题,深入探讨如何利用Hibernate框架实现高效、便捷的分页功能。 首先,Hibernate是一个优秀的Java持久化框架,它提供了ORM(对象关系映射)解决方案,使得开发者可以使用...

    hibernate分页

    **hibernate分页**是Java开发中一个重要的技术概念,特别是在处理大数据量时,为了提高用户体验和系统性能,分页查询是不可或缺的。Hibernate,作为一款强大的对象关系映射(ORM)框架,提供了多种实现分页查询的...

    高效率的dw+spring+hibernate分页演示例子

    这个"高效率的dw+spring+hibernate分页演示例子"提供了一个实用的示例,展示了如何将这三个框架整合起来,以实现高效的数据分页功能。 首先,让我们来逐一了解这三个技术: 1. **DWR (Direct Web Remoting)**:DWR...

    hibernate实现分页

    ### Hibernate分页基础 1. **Criteria API**:Hibernate的Criteria API允许我们创建动态查询,同时也支持分页。通过设置`setFirstResult()`和`setMaxResults()`方法,可以实现分页效果。例如: ```java Criteria ...

    struts+hibernate分页

    综上所述,"struts+hibernate分页"涉及到的主要是如何在Struts的控制层和Hibernate的数据层之间协调处理分页请求,以及在DAO层利用Hibernate的特性实现数据库查询的分页。理解并掌握这两个框架的分页机制,对于开发...

    java 实现的一个简单的hibernate分页类

    java 实现的一个简单的hibernate分页类 可以设置,从某一条开始取、显示的条数 不依赖struts spring

    hibernate分页例子.rar

    本教程将通过一个具体的“hibernate分页例子”来深入理解如何在Hibernate中实现分页功能。 在实际应用中,当数据量大到一定程度时,一次性加载所有数据会导致内存压力过大,影响系统性能。因此,分页查询成为一种...

    关于Hibernate分页类和jdbc的sql分页完美融合

    本主题将探讨如何在Hibernate分页类和JDBC的SQL分页方法之间实现完美的融合,以提高性能并提供更好的用户体验。 首先,让我们了解一下Hibernate的分页功能。Hibernate提供了一种方便的方式来处理分页查询,通过...

Global site tag (gtag.js) - Google Analytics