java web實現分頁顯示資料
java web實現分頁顯示資料
(2012-10-22 17:01:03)一個簡單的JAVA分頁方法
定義兩個Vector,一個為儲存查詢所有記錄的totalV,另一個儲存當前頁的記錄currentPageV;
總的記錄數:int totalSize = totalV.getSize();
每頁顯示的記錄數:int countPerPage;
總頁數:int totalPageNum = totalSize/countPerPage;
//如果總的記錄數和每頁記錄數的餘數大於零,
//那麼總的頁數為他們的整除結果加一
if (totalSize%countPerPage > 0 ){
totalPageNum = totalSize/countPerPage + 1;
}
當前的頁數:pageNum;
for (int j = 0;j
//分頁,根據當前的頁數和每頁顯示的記錄數從totalV中取出記錄
//往currentPageV中新增記錄;
//如果當前記錄在(當前頁碼-1)*每頁顯示記錄數(包括等於)
//和 當前頁碼*每頁顯示記錄數(不包括等於)之間的時候;
//就屬於該頁的資料
if ( (j >= (pageNum - 1) * countPerPage) && (j < pageNum * countPerPage)) {
currentPageV.addElement(totalV.get(j));
}
//當currentPageV記錄數等於每頁顯示記錄數,
//停止往currentPageV中新增記錄
if (currentPageV.size() == countPerPage) {
break;
}
}
那麼,當前頁中顯示的記錄,就是currentPageV中的記錄。
第二個分頁
在使用資料庫的過程中,不可避免的需要使用到分頁的功能,可是JDBC的規範對此卻沒有很好的解決。對於這個需求很多朋友都有自己的解決方案,比如使用Vector等集合類先儲存取出的資料再分頁。但這種方法的可用性很差,與JDBC本身的介面完全不同,對不同型別的欄位的支援也不好。這裡提供了一種與JDBC相容性非常好的方案。
JDBC和分頁
Sun的JDBC規範的制定,有時很讓人哭笑不得,在JDBC1.0中,對於一個結果集(ResultSet)你甚至只能執行next()操作,而無法讓其向後滾動,這就直接導致在只執行一次SQL查詢的情況下無法獲得結果集的大小。所以,如果你使用的是JDBC1.0的驅動,那麼是幾乎無法實現分頁的。
好在Sun的JDBC2規範中很好的彌補了這一個不足,增加了結果集的前後滾動操作,雖然仍然不能直接支援分頁,但我們已經可以在這個基礎上寫出自己的可支援分頁的ResultSet了。
和具體資料庫相關的實現方法
有一些資料庫,如Mysql, Oracle等有自己的分頁方法,比如Mysql可以使用limit子句,Oracle可以使用ROWNUM來限制結果集的大小和起始位置。這裡以Mysql為例,其典型程式碼如下:
// 計算總的記錄條數
String SQL = "SELECT Count(*) AS total " + this.QueryPart;
rs = db.executeQuery(SQL);
if (rs.next())
Total = rs.getInt(1);
// 設定當前頁數和總頁數
TPages = (int)Math.ceil((double)this.Total/this.MaxLine);
CPages = (int)Math.floor((double)Offset/this.MaxLine+1);
// 根據條件判斷,取出所需記錄
if (Total > 0) {
SQL = Query + " LIMIT " + Offset + " , " + MaxLine;
rs = db.executeQuery(SQL);
}
return rs;
}
毫無疑問,這段程式碼在資料庫是Mysql時將會是漂亮的,但是作為一個通用的類(事實上我後面要提供的就是一個通用類庫中的一部分),需要適應不同的資料庫,而基於這個類(庫)的應用,也可能使用不同的資料庫,所以,我們將不使用這種方法。
另一種繁瑣的實現方法
我看過一些人的做法(事實上包括我在內,一開始也是使用這種方法的),即不使用任何封裝,在需要分頁的地方,直接操作ResultSet滾到相應的位置,再讀取相應數量的記錄。其典型程式碼如下
相關文章
- Java Web 分頁實現JavaWeb
- MyFaces整合sitemesh,以及使用MyFaces實現資料分頁顯示
- 利用ASP實現Oracle資料記錄的分頁顯示Oracle
- 實現分頁顯示資料[並按關鍵字查詢]
- asp.net mvc 中利用jquery datatables 實現資料分頁顯示ASP.NETMVCjQuery
- Java Web(十一) 分頁功能的實現JavaWeb
- MongoDB之資料查詢(分頁顯示)MongoDB
- 實現小資料量和海量資料的通用分頁顯示儲存過程儲存過程
- java-用SSH框架實現將查詢的資訊分頁顯示Java框架
- 用javabean來實現MySQL的分頁顯示(轉)JavaBeanMySql
- 關於黑馬旅遊網的實現 --- 分頁查詢功能,點選分頁碼不顯示資料
- XML建立可排序、分頁的資料顯示頁面(轉)XML排序
- php分頁顯示PHP
- 如何分頁顯示資料庫查詢結果?資料庫
- web 實現分頁列印功能Web
- java實現將資料庫資料轉化成excel表格顯示出來Java資料庫Excel
- PHP+MYSQL 條件篩選後分頁顯示資料PHPMySql
- 看看JSP中怎樣實現分頁顯示(僱員管理)JS
- Java web 分頁感想JavaWeb
- 關於逐步顯示資料如何實現
- Java實現後端分頁Java後端
- SAP UI5 列表控制元件分頁顯示資料時,如何自定義分頁大小UI控制元件
- 如何實現網頁文字原格式顯示網頁
- C# GridView 分頁顯示C#View
- 使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示 (轉)控制元件
- web程式設計之分頁顯示 (轉)Web程式設計
- 從資料在頁面顯示不解析
- python實現資料分頁小練習Python
- 常見資料庫的分頁實現方案資料庫
- oracle資料庫用sql實現快速分頁Oracle資料庫SQL
- Swift 空資料介面顯示模組封裝實現Swift封裝
- Laravel 固定每頁顯示條數和顯示頁數(超過部分直接返回空資料)Laravel
- [提問交流]oneThink預設前臺分頁,每頁的資料條數顯示修改
- 【JS】javascript實現頁面顯示數字時鐘JSJavaScript
- java的struts2專案實現網站首頁只顯示域名不顯示index.do的做法Java網站Index
- 利用MySQL的一個特性實現MySQL查詢結果的分頁顯示(轉)MySql
- ListView分頁顯示 上拉載入更多View
- WPF/C#:如何將資料分組顯示C#