JavaWeb分页显示内容——数据库分页查询

转载请注明原文地址:

在开发过程中,经常做的一件事,也是最基本的事,就是从数据库中查询数据,然后在客户端显示出来。当数据少时,可以在一个页面内显示完成。然而,如果查询记录是几百条、上千条呢?直接一个页面显示完全的话,表格得多长啊。。。。。。这时,我们可以用分页技术。

何为分页?效果图如下:

这里总共查询了100条记录,如果一次性显示的话表格会很多行,用户体验不佳。而我们采用分页显示的话,一页显示10条记录,共十页。用户可以自行翻阅,记录少,清晰显示。

下面谈谈分页效果的实现,思路有两种:

其一:一次查询,分批显示。

就是说,我们可以执行一个数据库查询操作,得到结果集rs。然后,通过指针的移动来显示当前页面的记录。这样,就可以以   rs.absolute(当前页面号*每页记录数)定位到当前页的第一条记录,然后通过while循环显示n条记录(n为每页显示记录数)。在跳页时,只需修改currentPage,即可在重定位到下一页时把当前页面号改掉,重新定位记录指针,通过while遍历显示n条记录。

参考代码:

          <%            int intPageSize = 10;             //一页显示的记录数
                    int intRowCount;                 //记录总数
                    int intPageCount;                 //总页数
                    String strPage;                    //从表单或URL传送的待显示页码
                    int intPage;                     //待显示页码 ,由strPage转换成的整数
                    //将记录指针定位到待显示页的第一条记录上
                    sqlRst.absolute((intPage - 1) * intPageSize + 1);
                    //显示数据
                    int i=0;
                    String user_id, user_name, user_sex, user_phone, user_age;
                    while (i < intPageSize && !sqlRst.isAfterLast()) {
                        user_id = sqlRst.getString(1);
                        user_name = sqlRst.getString(2);
                        user_sex = sqlRst.getString(3);
                        user_phone = sqlRst.getString(4);
                        user_age = sqlRst.getString(5);
            %>
            <tr>
                <td><%=user_id%></td>
                <td><%=user_name%></td>
                <td><%=user_sex%></td>
                <td><%=user_phone%></td>
                <td><%=user_age%></td>
            </tr>
            <%
                        sqlRst.next();//移动记录指针指向下一条记录
                        i++;//统计当前页已显示多少条记录
                    }
            %>

这种方法是伪分页,是在客户端实现的分页效果。

其二:在服务端分页。跳到第n页才查询、显示第n页内容。

时间: 2024-08-01 22:47:25

JavaWeb分页显示内容——数据库分页查询的相关文章

python之分页显示内容

要求:分页显示101条数据,每页仅显示10条数据 user_data=[] for i in range(1,102): dic={'username':'Lucy'+str(i),'email':'lucy'+str(i)+'@163.com','passwd':'cmd'+str(i)} user_data.append(dic) # 每页仅显示10条数据 # 第一页:从0-10      1页 # 第二页:从10-20    2页 # 第三页:从20-30    3页 # ........

两次分页显示内容——先少后多显示

这个效果是在一个网站上看到的,大开网页先显示一部分,可以说是按需加载.就是滑动条到达底部再加载,但是也不是无限的,应该有一个大的限度.下面又页码数字,点击又是一部分,一部分的加载.我觉得这个效果非常不错,思考怎么实现.目前没有完全实现,但是大致效果有了,只要实现从数据库读取数据就算可以大功告成了.有时间再来实现吧. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.

织梦DeDeCms列表分页和内容页分页错位解决办法

文章页分页代码在这里/include/arc.archives.class.php列表页分页/include/arc.listview.class.php 很多入门的站长会碰到这样的问题,织梦的通病,下面秀站网总结了一下织梦的列表页和文章页分页问题,希望可以帮助到大家.主要修改两个文件一个是include/arc.listview.class,一个是修改CSS样式表. 第一,在CSS样式表里面添加如下代码: /*列表分页*/.page_list {padding:3px; margin: 3px

oracle中数据的分页显示及优化

在一个页面中经常会出现分页的现象,那么后台数据库又应该如何分页显示呢? 分页可以使用oracle中的rownum函数. 一个页面中从第几行到第几行数据的显示. 下面以scott用户下的emp表说明: 语句一: select b.* from( select a.* ,rownum row_num from (select * from emp ) a) bwhere row_num between 3 and 5; 语句二: select b.* from( select a.* ,rownum

Servlet——实现数据分页显示

Servlet实现数据分页显示 1.数据分页的应用 在很多情况下,Web网页的显示结果都很多,不可能在一个页面完全显示出来,这时候就需要用到数据分页 比如我们很熟悉的Google搜索结果: 那么怎么通过Servlet实现这个功能呢? 2.Servlet连接数据库 首先我们的数据是存放在数据库中,那么就需要Servlet去连接数据库,从而获取数据. Servlet连接数据库的步骤同JavaSE连接数据库的操作一样其实Servlet本身也就是Java. 首先需要准备Java连接数据库的相关jar包不

Mybatis高级教程之数据库分页插件

mybatis分页 mybatis的数据库分页是基于内存实现的,这样不符合我们实际的应用场景,所有我们需要自己实现分页. 刚开始和朋友们争论是使用插件实现,还是使用原生的sql实现,最后公说公有理婆说婆有理,也没有争论出什么来. 但是最后想想我们使用mybatis的初衷不就是抛弃原生jdbc的繁琐,让mybatis替我们做了繁杂的步骤, 那么mybatis的分页必须通过mybatis内部的一些机制来实现才能满足我们的需要. Mybatis高级教程之数据库分页插件

Mysql数据库大小查询

1.进入 information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2.查询所有数据的大小: SELECT concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data FROM TABLES; 3.查看指定数据库的大小: 比如查看数据库hellodb的大小 SELECT concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as dat

查询内容在网页里面分页显示+跳页查看

因为还处于学习阶段,所以用的框架是Struts2+Hibernate, 查询的方法是Hibernate自带的方法,因为数据较少的缘故,所以设定每页显示两条数据来实现 1.dao 层Hibernate的分页方法 1 package com.hanqi.dao; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.hibernate.Session; 7 import org.hibernate.Sessio

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库