`
pharaohsprince
  • 浏览: 295423 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

记录集分页显示策略

阅读更多

可以有以下五种方法实现:

1.  使用forward-only的resultset,rs.next()移动记录集就可以了
选从50-100
int CurrentRow = 1;
int MinRow = 50;
int MaxRow = 100;
while(rs.next())
{
   if (CurrentRow<MinRow)
  {
    CurrentRow++;
    continue;
  }
}

2.使用可滚动记录集的游标进行分页,abslout(int row)定位

Connection cn = 。。。;
   stmt = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
这样就可以使用rs.absolute(pos)进行定位了

3.使用SQL语句-通用

select top 50 *

from (select top 100 * from tablex order by id desc) as a

order by id


Oracle的语句:
select * from (select rownum r ,* from test) tt
where tt.r > 50 and tt.r <= 100;
DB2中:
select * from payment fetch first 5 row only --查前5条记录

4.使用ibatis,hibernate等,分页已经内部实现了,设置一下就可以了

1)hibernate

    Query q = session.createQuery("from Cat as c");
  q.setFirstResult(50);
  q.setMaxResults(100);
  List l = q.list();

  那么Hibernate底层如何实现分页的呢?实际上Hibernate的查询定义在net.sf.hibernate.loader.Loader这个类里面,仔细阅读该类代码,就可以把问题彻底搞清楚。

  Hibernate2.0.3的Loader源代码第480行以下:

  if (useLimit) sql = dialect.getLimitString(sql);
  PreparedStatement st = session.getBatcher().prepareQueryStatement(sql, scrollable);

  如果相应的数据库定义了限定查询记录的sql语句,那么直接使用特定数据库的sql语句。

  然后来看net.sf.hibernate.dialect.MySQLDialect:

  public boolean supportsLimit() {
  return true;
  }
  public String getLimitString(String sql) {
  StringBuffer pagingSelect = new StringBuffer(100);
  pagingSelect.append(sql);
  pagingSelect.append(" limit ?, ?");
  return pagingSelect.toString();
  }

  这是MySQL的专用分页语句,再来看net.sf.hibernate.dialect.Oracle9Dialect:

  public boolean supportsLimit() {
  return true;
  }

  public String getLimitString(String sql) {
  StringBuffer pagingSelect = new StringBuffer(100);
  pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
  pagingSelect.append(sql);
  pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ > ?");
  return pagingSelect.toString();
  }

  Oracle采用嵌套3层的查询语句结合rownum来实现分页,这在Oracle上是最快的方式,如果只是一层或者两层的查询语句的rownum不能支持order by。

2)ibatis

PaginatedList list =sqlMap.queryForPaginatedList  ("getProductList”, null, 10);
list.nextPage();
list.previousPage();

5.使用The Pager Tag Library

    到http://jsptags.com/tags/navigation/pager/下载pager-taglib-2.0.war包,解压后可获得pager-taglib.jar,将其放到web-inf/lib/包下



分享到:
评论

相关推荐

    易语言记录集真分页显示

    本主题聚焦于"易语言记录集真分页显示",这是一种实现大型数据集高效浏览的技术,对于处理大量数据的应用程序至关重要。 记录集是数据库中的一个概念,它代表了数据库中的一组相关数据行。在易语言中,记录集对象...

    易语言数据库记录集分页显示

    在这个主题中,我们将深入探讨"易语言数据库记录集分页显示"的相关知识点。 易语言是一种中文编程语言,它的设计目标是降低编程难度,使得更多的人能够参与到程序开发中。在易语言中,数据库记录集的分页显示涉及...

    数据库记录集分页显示源码.zip易语言项目例子源码下载

    数据库记录集分页显示是数据库应用中的常见功能,特别是在网页或桌面应用程序中,当需要处理大量数据时,分页能够提高用户体验,避免一次性加载过多数据导致的性能问题。易语言是一种面向对象、易于理解的编程语言,...

    分页显示数据技术

    在IT行业中,分页显示数据是一项非常常见的技术,特别是在网页应用和大数据展示中。它能够有效地管理和呈现大量的信息,提高用户界面的响应速度,减轻服务器的负担,同时提供更好的用户体验。下面将详细介绍分页显示...

    分页显示列表的学习

    通过学习和实践这些分页显示的知识点,你可以更好地处理大规模数据集,为用户提供流畅、高效的浏览体验。参考提供的博文链接(https://djlijian.iteye.com/blog/503981),你将能深入掌握实际操作中的技巧和最佳实践...

    jsp分页显示数据(显示方式有很多种)

    本教程主要探讨如何在JSP中实现数据的分页显示。 一、基本概念与原理 分页显示是将大量数据分为多个部分,每次只加载一部分到页面上,用户可以通过点击页码或导航按钮来切换不同的数据块。在JSP中,我们通常需要...

    C#datagridview分页显示

    然而,当数据集非常大时,一次性加载所有记录可能导致应用程序性能下降,用户体验也会受到影响。这时,分页显示就显得尤为重要。分页技术能有效地解决这个问题,它将大量数据分成多个小部分,每次只加载一部分到界面...

    web开发实例上传图片至服务器记录分页显示

    在本文中,我们将深入探讨一个基于Web开发的实例,该实例涵盖了上传图片到服务器以及分页显示记录的功能。我们将使用Servlet技术来实现Web服务器与前端的交互,并涉及到MySQL数据库的使用。以下是对这些知识点的详细...

    分页显示.rar

    分页显示是网页和应用程序中常见的一种数据展示方式,它主要用于处理大数据集的显示问题,避免一次性加载所有数据导致页面响应变慢或者浏览器崩溃。在本文中,我们将深入探讨分页显示的概念、实现原理以及在不同场景...

    单数据集分页SQL实现层式报表

    在本篇内容中,我们主要探讨了在报表开发工具FineReport中如何实现单数据集分页SQL以及如何构建层式报表。这一过程涉及到对不同数据库类型的处理策略,特别是对于那些不能直接生成分页SQL的数据库,如Access。接下来...

    实现千万级数据的分页显示

    在处理大规模数据集时,如何高效地进行分页显示成为了一个关键的技术挑战。传统的分页方法在面对数百万甚至上千万的数据记录时,往往会出现性能瓶颈,导致用户体验下降。本文将详细介绍一种能够在5秒内获取1448万条...

    在ASP中实现对SQL、SERVER中库表记录分页显示的程序设计.pdf

    在ASP中实现对SQL SERVER数据库表记录的分页显示是...以上就是利用ASP在SQL SERVER中实现数据库表记录分页显示的关键知识点和实现策略。通过精心设计与实施分页功能,可以大大提升数据处理的效率,优化用户交互体验。

    数据分页显示

    在网页开发中,数据分页显示是一项非常重要的技术,特别是在处理大量数据时,为了提高用户体验和页面加载速度,我们通常不会一次性将所有数据都显示在页面上,而是采用分页的方式,每次只加载一部分数据。...

    ASP.net中大结果集的分页

    本篇文章将详细介绍在ASP.NET中处理大结果集分页的方法及其背后的原理,旨在为开发者提供一种优化现有方法的新思路,并提供一个可供进一步测试与开发的基础应用。 #### 为什么需要分页 在Web应用程序中,特别是...

    java(j2ee)分页标志库,教你如何快速分页显示

    在Java Web应用中,分页通常涉及到数据库查询、结果集处理和前端UI展示三个部分。 Java中的分页库有很多种,例如Hibernate的Criteria API、MyBatis的PageHelper以及我们这里关注的"PagerTag"。PagerTag是一个基于...

    查询的数据分页 JAVAWEB

    LIMIT用于指定每页显示的记录数,OFFSET则用来跳过前几条记录,从而达到分页的效果。例如,如果我们想获取第2页,每页显示10条记录,SQL可能是这样的: ```sql SELECT * FROM table LIMIT 10 OFFSET 10; ``` ...

    web 开发 mysql+jdbc 实现信息分页显示

    在分页显示中,我们需要编写Java代码来执行上述SQL查询,并处理返回的结果集。以下是一个简单的示例: ```java import java.sql.*; public class PageDemo { public static void main(String[] args) { String ...

    asp 写分页数字 显示太多时分段显示代码

    标题和描述都提到了在ASP(Active Server Pages)中实现分页数字的显示,尤其是在...在实际应用中,可以根据具体场景调整分段显示的策略,如调整显示页数的范围、加入更多状态提示等,以满足不同需求下的最佳用户体验。

    datalist分页技术及实现

    Datalist分页技术的核心原理是将大数据集分割成若干小部分,每次只加载和显示一部分数据,用户可以通过点击页码或导航按钮来切换不同的数据页。这样既能降低服务器的压力,也能提供更好的用户体验。 在实现Datalist...

    asp分页显示详细说明文档

    因此,分页显示成为了一种广泛采用的技术手段,尤其在ASP(Active Server Pages)中,通过合理的分页策略可以有效提升网站性能和用户满意度。本文将基于给定的ASP分页显示文档,深入探讨其核心概念、实现机制以及...

Global site tag (gtag.js) - Google Analytics