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页面的分页:

  • 相关阅读:
    autojspro常用的代码和公共函数搜集整理,史上最全最完整
    C# List类型复制克隆副本以及插入数据,按照某个字段进行排序,去掉某些不符合要求的数据
    C# 将double类型值截取小数点后两位或者多位
    Excel表格中引用另外一格数据。写sql用的
    最全的Resharper快捷键汇总
    easyui datagrid没有ID情况下,easyui datagrid 删除行信息方法
    C# 通过JObject解析json对象
    c#中string字符串转为json与json转对象
    前端js拼接Json字符串,全
    Java+IDEA环境配置整合
  • 原文地址:https://www.cnblogs.com/paopaolong/p/7471815.html
Copyright © 2011-2022 走看看