`

可滚动结果集与分页技术

SQL 
阅读更多

可滚动的结果集

       Statement st =

       connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,      ResultSet.CONCUR_UPDATABLE);

       ResultSet rs = st.executeQuery(sql);

       rs.beforeFirst();//定位到第一行的前面

rs.afterLast();//定位到最后一行的下一行去,若想读数据则向前移

rs.first();//定位到第一行

rs.isFirst();//判断是不是第一行

rs.last();//定位到最后一行

rs.isLast();//判断是不是最后一行

       rs.absolute(9);//定位到那一行

rs.moveToInsertRow();

      

public class ScrollTest {

    public static void main(String[] args) throws SQLException {

       scroll();

    }

    static void scroll() throws SQLException {

       Connection conn = null;

       Statement st = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                  ResultSet.CONCUR_READ_ONLY);

           rs = st

                  .executeQuery("select id, name, money, birthday  from user where id<10");

           while (rs.next()) {

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                     + rs.getObject("money"));

           }

 

           System.out.println("------------");

           rs.absolute(5);//定位到第5行去

           if (rs.previous()){//定位到前一行去

            System.out.println(rs.getObject("id") + "\t"

            + rs.getObject("name") + "\t"

            + rs.getObject("birthday") + "\t"

            + rs.getObject("money"));

           }

       } finally {

           JdbcUtils.free(rs, st, conn);

       }

    }

    //用可流动的结果集进行分页

    static void scroll2() throws SQLException {

       Connection conn = null;

       Statement st = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                  ResultSet.CONCUR_READ_ONLY);

           rs = st

                  .executeQuery("select id, name, money, birthday  from user");

           while (rs.next()) {

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                      + rs.getObject("money"));

           }

 

           System.out.println("------------");

           rs.absolute(150);//定位到150

           int i = 0;

           while (rs.next() && i < 10) {   //向下读取10条记录

              i++;

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                     + rs.getObject("money"));

           }

       } finally {

           JdbcUtils.free(rs, st, conn);

       }

    }

    //说明,这种分页效率很低,它是由先读到内存当中去,然后再选择哪些列.这种方法就为了那些不支技分页的数据库使用的.

}

 

分享到:
评论

相关推荐

    滚动条分页

    滚动条分页是一种在用户界面上优化数据展示的技术,尤其适用于处理大量数据的情况。在传统的分页中,用户通常通过点击页码或导航按钮来浏览数据。然而,滚动条分页将这种体验集成到滚动条中,使得用户可以通过直接...

    datalist分页技术及实现

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

    目前最好的JSP分页技术

    ### 目前最好的JSP分页技术:深入解析与最佳实践 #### 引言 在Web开发中,分页是一项常见的需求,特别是在处理大量数据时,分页能有效提升用户体验和系统性能。JSP(JavaServer Pages)作为早期流行的服务器端脚本...

    目前最好的分页技术 JSP

    ### 目前最好的分页技术:JSP #### 前言 在处理数据库查询时,经常需要使用分页功能来提高数据展示的效率及用户体验。然而,标准的JDBC并未提供良好的分页机制,因此开发者们需要寻找或创造其他方式来实现这一功能...

    JDBC学习笔记

    #### 二十、可滚动结果集与分页技术 - **可滚动结果集**:允许前后移动记录指针,方便数据浏览。 - **分页查询**:通过限制查询结果的数量来实现分页展示。 #### 二十一、可更新和对更新敏感的结果集 - **可更新...

    jdbcTemplate分页彻底解决,使用游标滚动

    总结起来,使用JdbcTemplate的游标滚动技术,我们可以实现高效、低内存消耗的分页,这对于处理大量数据的系统来说至关重要。同时,这种方式也使得代码更加灵活,能够适应各种数据库的差异,提高了程序的可移植性。

    目前最好的JSP分页技术.txt

    通过对JSP分页技术的研究与实践,我们可以发现:尽管JDBC在最初的设计中并没有直接支持分页查询,但通过结合使用数据库特性和JDBC的特性,仍然能够实现高效的分页显示。此外,通过自定义接口的方式进一步抽象分页...

    java分页技术参考

    使用PreparedStatement预编译SQL语句以提高效率和安全性,同时设置结果集为可滚动类型,以便于分页操作。 3. **计算分页信息**: 通过遍历结果集,获取总记录数`intRowCount`,然后根据每页显示的记录数计算总页数...

    数据更新与分页数据更新与分页数据更新与分页

    在处理大量数据时,分页技术允许用户逐步查看和操作数据,而不是一次性加载所有记录,这大大提高了页面加载速度,减少了内存占用,并优化了用户交互。 首先,我们来讨论数据更新。在数据库管理中,数据更新涉及到对...

    android listview滚动分页

    为了解决这个问题,通常我们会采用滚动分页(Lazy Loading)技术。滚动分页在用户滚动到列表底部时,动态加载更多的数据,这样既能保证用户体验,又能有效管理内存。 首先,理解ListView的工作原理至关重要。...

    Java开发分页技术

    Java开发中的分页技术是网页开发中不可或缺的一部分,特别是在处理大量数据时,为了提高用户体验和系统性能,分页成为了一种必要的数据展示策略。本文将深入探讨Java与JSP实现分页的原理、方法和最佳实践。 一、...

    hibernate中实现真分页和假分页技术

    `ScrollableResults`允许你按需滚动结果集,而不是一次性加载所有数据: ```java Session session = sessionFactory.openSession(); Query query = session.createQuery("from User"); ScrollableResults results =...

    JSP分页技术文档下载

    JSP分页技术是Web开发中处理大量数据展示的关键手段,尤其在数据库查询结果需要按页展示时。本文档主要探讨如何在JSP中实现高效、兼容性好的分页功能。 首先,JDBC(Java Database Connectivity)规范在早期版本中...

    jsp通用分页

    【jsp通用分页】是指在Java Web开发中,利用JSP技术实现数据库查询结果的分页展示。在处理大量数据时,为了提高用户体验和减轻服务器压力,通常会采用分页的方式来展示数据。JDBC(Java Database Connectivity)作为...

    java+bean分页技术

    分页技术的基本思想是将大数据集分割成多个小部分,每次只加载一部分到用户界面,从而减少服务器负载和网络传输的数据量。在JSP应用中,Java Bean通常作为中间层,负责处理数据库查询和分页逻辑。 首先,我们需要...

    10种 js web分页效果

    8. **搜索/过滤后的分页**:当用户进行搜索或过滤操作后,分页应该根据新的结果集进行更新,显示正确的页数和页码。 9. **预加载分页**:预先加载相邻的页面内容,减少用户等待时间,提升浏览效率。这通常结合Ajax...

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

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

    24款网页分页方法满足网站需要

    网页分页技术是网站设计中不可或缺的一部分,尤其在处理大量数据或内容时,它能有效地组织和导航用户浏览。在“24款网页分页方法满足网站需要”这个主题中,我们将探讨各种分页实现方式及其优缺点,帮助开发者根据...

    ssh实现分页

    5. 在用户滚动到底部时,可以采用无限滚动(Ajax分页)的方式加载更多数据。 综上所述,SSH框架下的分页实现涉及Struts2、Spring和Hibernate等多个层面,通过合理设计和优化,可以提供高效且友好的分页功能。开发者...

    Android,自定义RecyclerView,实现分页效果

    在Android应用中,分页加载是指当用户滚动到列表底部时,动态加载更多数据,而不是一次性加载所有数据。这种策略有助于减少初次加载时间,同时避免因加载过多数据导致的内存问题。 要实现这个功能,我们首先需要...

Global site tag (gtag.js) - Google Analytics