【知了堂学习笔记】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>
        

下章我们就实现页面数据的展示:

时间: 2024-10-22 02:40:19

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询的相关文章

[知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)

上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet中将从数据库得到的数据转化成JSON格式的字符串. 那么什么是JSON格式的字符串? JSON格式的字符串就是指字符串的内容要完全符合JSON数据的格式 这个就是在servlet中输出的已经封装好的JSON格式字符串,在控制台输出的效果. 如何封装 在我自己的WEB中,原本想用原生态的JSON去封装

[知了堂学习笔记]_JSON数据操作第1讲(初识JSON)

一.认识JSON 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式..它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. JSON语法 {}表示JSON对象 在{}中是1~n个键值对 键与值之间用:隔开,键值对用,隔开.如

知了堂学习笔记-微信小程序框架

开发者文档:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html 一.文件结构 小程序包含一个描述整体程序的app和多个描述各自页面的page. 一个小程序主题部分由三个文件组成,必须放在项目的根目录, 如下: app.js                   必填               小程序逻辑 app.json                必填              小程序公共设置 app.wxss    

【知了堂学习笔记】Eclipse,Myeclipse连接MySQL数据库和Oracle数据库

一.连接MySQL数据库 1.由于Eclipse,Myeclipse都没有连接MySQL数据的架包,我们需要自行下载MySQL连接架包 mysql-connector(官方链接:http://dev.mysql.com/downloads/connector/j/5.0.html),下载版本最好是最新版. 2.下载好后,复制到你的项目里任何位置,然后右键架包选择 Build path -> add to Build path,然后点击项目的Libraries里的Referenced Librar

[知了堂学习笔记]_牵线Eclipse和Tomcat第二篇 —— 安装Tomcat&amp;&amp;添加Tomcat到Eclipse

来了来了~~~~~我们的"织女"--Tomcat来了,牛郎们等急了吧!哈哈! 一.安装Tomcat 下载地址:http://tomcat.apache.org/download-70.cgi 左侧:选择的是Tomcat的版本,这里以Tomcat 7为例. 右边可以选择不同的安装版本,红框部分是windows的zip安装版本, 选择和自己jdk位数一样的位数,进行下载就行了. 安装Tomcat 那就很简单了解压就行了,解压后如下图: 解压后选择 bin目录下面的->startup.

[知了堂学习笔记]_Jquery_Validate 表单校验的使用

一.效果图: 二.JqueryValidate的好处 在做注册.或者类似以上的表单提交的时候,大家是不是都很烦那种,把数据拿到后台去判断, 可能经过了正则表达式之类的复杂判断,然后发现数据错误.接着通过request转发到页面上,再通过EL 表达式输出错误信息.实话实话,在没发现这个插件之前,我是这么干的,好痛苦的感觉. JqueryValidate的好处就在于,你不必经过servlet,就可以在页面上面判断用户输入的信息是否正确,它能够快速实现 表单的校验. 三.引入插件 顺序不能乱,此插件是

【知了堂学习笔记】java中常用集合的理解

最近学习了java中常用集合类的一些知识,在这里作为一只小白,我来谈谈我的理解,顺带总结知识点. 引入:在没有接触之前,听到集合,给我感觉是想到了数学中的集合一样,里面存放着一个一个的元素.其实不然,这个集合也就差不多,是用来存放元素的容器. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 今天我要谈的主要是,如下图所示: 1.Collection Collection是最基本的集合类型,若要检查Collection中的元素,可以使

[知了堂学习笔记]_用JS制作《飞机大作战》游戏_第1讲(素材查找和界面框架搭建)

一.查找素材: 二.分析游戏界面框架: 登录界面.游戏界面.暂停游戏界面.玩家死亡后弹出界面:并对应的界面包含什么元素: 三.分别搭建以上四个界面: 1.登录界面与游戏界面框架(隐藏游戏界面,四个界面的宽度和高度要一致): HTML代码: <!--main div是游戏界面的大DIV --> <div id="main" style="height: 643px;"> <!--玩家头像DIV--> <div id="

[知了堂学习笔记]_初始化顺序

在我们每次new一个对象的时候,对象都会被初始化,但是他们初始化的顺序又是怎样呢?现在我以存在继承与不存在继承的代码给大家演示. 一.对于没有继承的初始化的顺序(静态变量,静态块.构造函数.变量) package test; //没有继承情况下的代码 public class test5 { //静态变量 private static String st="静态变量"; //静态块 static{ System.out.println(st); System.out.println(&