zoukankan      html  css  js  c++  java
  • 【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

    一.分页简介

      1.分页,就是一种将数据库里的数据一部分展示给用户的技术。为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样。最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的。

      

      2.分页的实现方式

        1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来。这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式就爆炸了。由于一次取出的数据太大,会导致你的页面爆炸,点下一页要等很久,用户体验感很差,所以不推荐使用。

        2)真正的分页:真正的分页就是你的页面需要多少数据,就去数据库取多少数据。这种分页就十分灵活了,在对付数据庞大的查询时,有很大的优势。所以我们这次的笔记就使用这样的方式。

    二.数据库分页查询

      数据库分页查询,就是根据页面的需要,一次只查询部分的数据,当用户点击下一页的时候就继续查询另外的数据。现在主流的数据库主要有三种:Oracle、MySQL、SQL server,我们接下来就看看,三种数据库对应分页查询的方法。

     1.MySQL——相对来说最简单分页查询

      MySQL的分页查询要用到 limit关键字,方式就是 limit m,n   m表示第几条数据   n表示从m+1开始取多少条数据,比如

        select * from table limit m,n       其中m是指记录开始的index,从0开始,表示第一条记录

        具体:select * from tableName where 条件 limit 当前页码*页面容量-1,页面容量

     2.Oracle 分页

      Oracle分页要用到的关键字是 rownum (行号),我们直接看它的用法

      1)查询表中的前n条记录   : select * from Table where rownum <= n

      2)查询第 n 到第 m 条记录   :select * from (select 表名.*, rownum rn from 表名 where rownum <=m) where rn > n;
          对于这种形式的查询,oracle不像mysql那么方便,它必须使用子查询或者是集合操作来实现。

     3.SQL server的分页

       在分页查询上,我感觉SQL Server比较费劲,没有一个专门的分页的语句,并且每个版本对应的查询方式不一样,比如:  

        1)SQL Server 2000数据库分页
        Select top pagesize * from 表名 where 列名 not  in(select top pagesize*page 列名 from  表名 order by 列名) order by 列名

        2)SQL Server 2005数据库分页(后面的数据分页就大同小异了)
        Select * from (select 列名,row_搜索number() over(order by  列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow

    三.页面的编写

      数据的分页查询学会了,我们就要规划页面如何在页面显示了。一般的网页中,我们都是以表格的样式呈现数据的,所以我们先把jsp页面做好,再去通过编写后台代码让数据呈现在页面上,这里我给出了我们测试的jsp页面:

      效果图:

    附上代码:

      

    <div class="search">
                <p>申请日期:</p>
                <select id="time">
                    <option >选择日期</option>
                </select>
                <input class="button" type="submit" name="" value="查询"></input>
                <div class="tuxin"><img src="../../images/图形化报表.png"> <a href="#">图形报表</a></div>
                <div class="dayin"><img src="../../images/打印机.png"> <a href="#">导出打印</a></div>
                <form>
                <p>采购编号:</p>
                <input type="text" name="">
                <p>材料名称:</p>
                <input type="text" name="">
                <input class="button" type="submit" name="" value="查询"></input>
                <input type="reset" class="button" value="重置" style="background:#e4e1e1;color:#000"></input>
                </form>
            </div>
            <div class="contents">
                <table class="table">
                    <tr>
                        <td>申请日期</td>
                        <td>申请人</td>
                        <td>采购员</td>
                        <td>材料编号</td>
                        <td>材料名称</td>
                        <td>规格型号</td>
                        <td>计量单位</td>
                        <td>申请数量</td>
                        <td>备注</td>
                        <td>操作</td>
                    </tr>
                    <tr>
                        <td>2017/8/7</td>
                        <td>小贤</td>
                        <td>张三</td>
                        <td>1001</td>
                        <td>玻璃</td>
                        <td>100X100X3</td>
                        <td>cm(厘米)</td>
                        <td>1000</td>
                        <td></td>
                        <td><a class="delete" href="#"><img src="../../images/delete_8e.png"></a></td>
                    </tr>
                </table>
                <div class="paging">
                    <a class="button" href="">上一页</a>
                    <a href="#">1</a>
                    <a href="#">2</a>
                    <a href="#">3</a>
                    <a href="#">4</a>
                    <a href="#">5</a>
                    <a class="button" href="">下一页</a>
                    <p><span>5</span>&nbsp;&nbsp;&nbsp;到第</p>
                    <input  type="text" name="">
                    <p style="margin:2px -1px 0 10px;"></p>
                    <input class="button" type="submit" value="确认">
                </div>
            

    下章我们就实现JSP页面的分页:

  • 相关阅读:
    将PHP文件生成静态文件源码
    Entity Framework Code First 学习日记(6)一对多关系
    Entity Framework Code First 学习日记(5)
    Entity Framework Code First 学习日记(3)
    Entity Framework Code First 学习日记(7)多对多关系
    Entity Framework Code First学习日记(2)
    Entity Framework Code First 学习日记(8)一对一关系
    Entity Framework Code First 学习日记(9)映射继承关系
    Entity Framework Code First 学习日记(10)兼容遗留数据库
    Entity Framework Code First 学习日记(4)
  • 原文地址:https://www.cnblogs.com/paopaolong/p/7471815.html
Copyright © 2011-2022 走看看