標籤:樣式 strong 推薦 over 接下來 概念 搜尋 dex 顯示
一.分頁簡介
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>頁 到第</p> <input type="text" name=""> <p style="margin:2px -1px 0 10px;">頁</p> <input class="button" type="submit" value="確認"> </div>
下章我們就實現頁面資料的展示:
【知了堂學習筆記】JSP頁面資料分頁實現(一)——分頁概念以及主流資料庫的分頁查詢