`
fatedgar
  • 浏览: 134759 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Oracle中实现分页的SQL语句和在JSP页面实现分页技术(测试版,更新中……)

阅读更多
写了两个有关分页的SQL 语句,希望对大家有点帮助...记住,只能在Oracle下使用

1 获取总页数
    SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)   
    AS  pages FROM XZQH   

SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)AS  pages FROM XZQH 

其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西.

100是没页显示的记录数,换成你想要的!!!

生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得

2 获取特定的记录数据
    SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x where x.numbers>90  

SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x where x.numbers>90 

其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接

其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据.

      2.
select x.* from (select y.*,rownum row_id from (select z.* from admin z )y)x where row_id between 90 and 101

好了,点到为止..具体在实践中该怎么用,大家自己慢慢琢磨吧!!!





分页技术(写在jsp页面的):

1、先定义:
  int pageSize=3;//每页显示3条数据
  int pageNow=1;//当前显示页数
  int pageCount=0;//共有多少页(计算)
  int rowCount=0;//一共多少条数据(查表)


//动态接受PageNow的值从本页面的超链接处得到的值
  String pagenow=request.getParameter("pageNow");
  if(pagenow!=null){
   pageNow=Integer.parseInt(pagenow);//把接受的值传给pageNow
  } 

2、获取rowCount:

TestJDBC1 jdbc=new TestJDBC1();
  String sql="select count(*)from admin";
  ResultSet rs=jdbc.query(sql);
  try {
   while(rs.next()){
    rowCount=rs.getInt(1);//获得共多少条数据
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }

3、获取pageCount:

//分多少页计算
   //方法一
   //if(rowCount%pageSize==0){
   // pageCount=rowCount/pageSize;
   //}else{
   // pageCount=rowCount/pageSize+1;
   //}
   //方法二(推荐)
  
pageCount = (rowCount + pageSize - 1) / pageSize;

4、获取动态的数据查询(选哪一页就查询那页pageSize条数据)

//查询方法一
            String sql1="select x.* from (select z.*,rownum numbers from admin z where rownum<="+(pageNow*pageSize)+")x where x.numbers>="+((pageNow*pageSize)-pageSize+1)+"";

//查询方法二
    
String sql1 = "select x.* from (select y.*,rownum row_id from (select z.* from admin z )y)x where row_id between "+((pageNow - 1) * pageSize + 1)+" and "+(pageNow * pageSize);



 
 ResultSet rs1=jdbc.query(sql1);    
  try {
   while(rs1.next()){
    out.println("<tr><td>"+rs1.getString(1)+"</td>");
    out.println("<td>"+rs1.getString(2)+"</td>");
    out.println("<td>"+rs1.getString(3)+"</td></tr>");
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }

可以放在表格中



5、动态生成超链接,用重写Url方法进行传值,把pageNow值传到本页面也=刷新本页面一次

//第一种方法

//上一页
  if(pageNow!=1){
   out.println("<a href=welcome.jsp?pageNow="+(pageNow-1)+">上一页</a>");
  }
  //判断是否还有足够的页数要显示
  if((pageCount-pageNow)<4){
   for(int i=pageNow;i<=pageNow+(pageCount-pageNow);i++){
    out.println("<a href=welcome.jsp?pageNow="+i+">["+i+"]</a>");
   }
  }else{
   for(int i=pageNow;i<=pageNow+4;i++){
    out.println("<a href=welcome.jsp?pageNow="+i+">["+i+"]</a>");
   }
  }
//下一页
  if(pageNow!=pageCount){
   out.println("<a href=welcome.jsp?pageNow="+(pageNow+1)+">下一页</a>");
  }

//第二种方法(推荐)
  int linkCount=3;
  //显示超链接 //首页
   out.println("<a href=welcome.jsp?pageNow=" + 1 + ">首页</a>");
   //上一页
   if (pageNow > 1) {
    int lastPage = (pageNow != 1) ? (pageNow - 1) : 1;
    out.println("<a href=welcome.jsp?pageNow=" + lastPage + ">上一页</a>");
   }

   //中间显示部分
   int middPage = (pageCount - pageNow >= linkCount) ? (pageNow - 1)
     : (pageCount - linkCount);
   for (int i = middPage + 1; i <= middPage + linkCount; i++) {
    if (i == pageNow) {
     out.println(" <a href=welcome.jsp?pageNow=" + i + ">" + i
       + "</a>");
    } else {
     out.println(" <a href=welcome.jsp?pageNow=" + i + ">[" + i
       + "]</a>");
    }
   }
   if (pageNow < pageCount) {
    //下一页
    int nextPage = (pageNow != pageCount) ? (pageNow + 1)
      : pageCount;
    out.println("<a href=welcome.jsp?pageNow=" + (pageNow + 1)
      + ">下一页</a>");
   }
分享到:
评论

相关推荐

    Oracle&JSP分页和Oracle分页

    总结来说,Oracle和JSP结合实现分页涉及以下几个步骤:在Oracle中构造分页查询,使用JDBC在Servlet中执行查询,然后在JSP页面中展示数据。理解并熟练掌握这些步骤对于开发高效、用户友好的数据驱动网站至关重要。在...

    纯JSP实现真分页

    【描述】提到的"程序中只用到了JSP页面,来实现分页查询Oracle数据库",意味着开发者在JSP页面中直接处理了与数据库交互的部分,包括建立数据库连接、执行SQL查询语句以及处理查询结果。通常,这种做法会将业务逻辑...

    jsp+JavaBean+Servlet_Oracle和Mysql分页

    在Java中,通常通过PreparedStatement设置SQL语句的条件,实现基于LIMIT和OFFSET的模拟分页。项目中的"pagination_4_Oracle"可能包含了Oracle分页的具体实现。 5. MySQL数据库分页:MySQL提供了LIMIT关键字,可以...

    jsp+oracle实现简单的分页

    在本文中,我们将探讨如何使用JSP和Oracle数据库来实现一个简单的分页功能。分页是Web应用程序中常见的需求,特别是在处理大量数据时,它能够提高用户体验,避免一次性加载过多数据导致页面响应变慢。 首先,我们...

    jsp中数据库在页面分页的实现

    本主题将深入探讨如何在JSP中利用数据库实现页面分页,并涉及存储过程、Servlet以及Oracle和MySQL数据库的分页策略。 首先,我们要理解JSP(JavaServer Pages)是一种基于Java的动态网页技术,它可以嵌入Java代码来...

    oracle+jsp实现分页

    根据提供的信息,我们可以详细探讨如何使用 Oracle 数据库与 JSP(JavaServer Pages)技术结合来实现数据分页功能。在 Web 开发中,分页是非常常见的需求之一,它能够有效地提高用户体验并减轻服务器负担。 ### ...

    JSP+JDBC_真分页(基于Oracle数据库分页).

    本主题聚焦于使用JSP和JDBC在Oracle数据库上实现真正的分页功能。在Web开发中,分页是提高用户体验的关键技术,尤其是在处理大量数据时,它能让用户更有效地浏览和查找所需信息。这里我们将深入探讨如何结合Java ...

    JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者

    2. **构建SQL查询语句**:使用LIMIT和OFFSET关键字(在MySQL中)或ROWNUM(在Oracle中)来限制查询结果的数量。 3. **处理用户请求**:获取用户请求的页码,计算出正确的起始索引和结束索引。 4. **显示数据和导航...

    jsp+oracle常用分页功能

    1. SQL查询:Oracle数据库中的SQL语句,如`SELECT * FROM 表名 LIMIT 起始行号, 行数`在Oracle中通常替换为`SELECT * FROM (SELECT * FROM 表名) WHERE ROWNUM 分页上限`,这里的ROWNUM是Oracle特有的行号函数。...

    java web与Oracle数据的分页功能

    在Java Web开发中,与Oracle数据库进行交互时,分页功能是常见的需求,尤其是在处理大量数据时,为了提高用户体验和加载速度,分批次地显示数据是必不可少的。本项目提供的源代码正是针对这一需求,提供了在Java Web...

    jsp数据分页源代码

    它可能包含一个自定义的JSP标签库(Tag Library),开发者可以通过在页面中引入这个库,然后调用特定的分页标签来实现分页功能。 6. **分页工具的使用**: 分页工具可能包含以下关键组件: - 分页参数:如当前...

    oracle实现分页

    本篇将详细讲解如何使用Oracle SQL语句来实现分页功能。 首先,我们需要了解Oracle数据库中的行号函数`ROWNUM`。在Oracle中,`ROWNUM`是一个伪列,它会为查询结果集中的每一行分配一个唯一的数字,从1开始递增。在...

    java实现oracle分页策略

    总之,Java实现Oracle分页策略涉及到数据库查询设计、Java DAO接口的实现以及前端页面的展示。通过合理的分页策略,我们可以有效管理和展示大量的数据库记录,同时提升应用的性能和用户体验。在实际编程中,应根据...

    jsp 分页 局部打印 技术 的实现

    本文将深入探讨如何在JSP页面中实现分页局部打印,主要关注的技术点包括:JSP分页原理、局部打印的实现方法、以及使用Lodop打印控件的具体步骤。 #### JSP分页原理 JSP分页主要是为了处理大数据量的展示问题,避免...

    毕业设计jsp+Sturts+hibernate的添删改查以及分页!采用Oracle数据库

    在新闻管理系统中,Hibernate用于管理与Oracle数据库之间的交互,包括对象的创建、读取、更新和删除(CRUD操作)。开发者通过定义实体类和映射文件,可以避免编写大量的SQL语句,提高开发效率。 4. **添删改查操作*...

    JSP+JDBC_真分页(基于Oracle数据库分页)笔记

    这需要在数据库层面编写特定的SQL查询,利用Oracle的ROWNUM或者ROWNUMBER()函数来限制返回的记录数,从而实现高效的数据分页。例如,以下是一个简单的示例: ```sql SELECT * FROM (SELECT ROW_NUMBER() OVER ...

    利用sql serve语句进行分页

    这里我们将深入探讨如何在SQL Server中使用语句进行分页,以及如何结合Oracle数据库和JSP技术实现这一功能。 首先,让我们关注SQL Server的分页操作。在SQL Server中,有两种主要的方法实现分页:TOP-N查询和ROW_...

    目前最好的JSP分页技术

    在JSP分页技术的探讨中,我们不得不提及JDBC(Java Database Connectivity),它是Java平台中用于连接数据库的标准API。JDBC的发展历程对分页技术有着深远的影响: - **JDBC 1.0时代的局限性**:最初版本的JDBC仅...

    简单页面jsp,java,oracle的增删改查并分页

    这里我们关注的是一个基于JSP、Java和Oracle数据库的简单页面,实现了数据的增删改查(CRUD)以及分页功能,非常适合初学者进行学习和实践。下面我们将深入探讨这个项目中的关键知识点。 1. **JSP(JavaServer ...

    SSI整合,有ibatis连接oracle的分页,ajax等技术

    而Ibatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,与ORM(对象关系映射)框架相比,提供了更大的灵活性。 在这个项目中,"SSI整合"指的是开发者将SSI技术应用到项目中,可能是在...

Global site tag (gtag.js) - Google Analytics