版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
JSP與Javabean綜合應用目標掌握實例應用:數(shù)據(jù)庫分頁技術的實現(xiàn)項目實踐體驗項目——<網(wǎng)絡通訊錄>
本章我們要制作一個網(wǎng)絡通訊錄,本項目有五個模塊組成,分別是顯示成員、添加成員、修改成員、刪除成員和新用戶注冊。實現(xiàn)數(shù)據(jù)庫查詢分頁一般有以下幾種方式:使用HttpSession或有狀態(tài)bean實現(xiàn)緩存使用Vector實現(xiàn)緩存使用ResultSet實現(xiàn)緩存使用數(shù)據(jù)庫自身的功能實現(xiàn)Oracle,MySql數(shù)據(jù)庫應用--分頁實現(xiàn)使用HttpSession實現(xiàn)分頁將查詢結果緩存在HttpSession或有狀態(tài)bean中,翻頁的時候從緩存中取出一頁數(shù)據(jù)顯示。兩個主要的缺點:用戶可能看到的是過期數(shù)據(jù);如果數(shù)據(jù)量非常大時第一次查詢遍歷結果集會耗費很長時間,并且緩存的數(shù)據(jù)也會占用大量內(nèi)存,效率明顯下降。數(shù)據(jù)庫應用--分頁實現(xiàn)使用Vector實現(xiàn)緩存先將所有記錄都select出來,然后將ResultSet中的數(shù)據(jù)都get出來,存入Vector等集合類中,再根據(jù)所需分頁的大小,頁數(shù),定位到相應的位置,讀取數(shù)據(jù)
缺點代碼的效率不高程序結構和使用的方便性上很糟糕的。比如,這種做法支持的字段類型有限,int,double,String類型還比較好處理,如果碰到Blob,Text等類型,實現(xiàn)起來就很麻煩了數(shù)據(jù)庫應用--分頁實現(xiàn)使用ResultSet實現(xiàn)緩存每次翻頁都查詢一次數(shù)據(jù)庫,從ResultSet中只取出一頁數(shù)據(jù)該結果集中的指針可以隨意移動實現(xiàn)分頁需要的參數(shù)intintPageSize;//一頁顯示的記錄數(shù)intintRowCount;//記錄總數(shù)intintPageCount;//總頁數(shù)intintPage;//待顯示頁碼數(shù)據(jù)庫應用--分頁實現(xiàn)總的紀錄數(shù):sqlRst.last();//光標在最后一行intRowCount=sqlRst.getRow();//獲得當前行號記算總頁數(shù)intPageCount=(int)Math.ceil
(
(float)intRowCount/(float)intPageSize
);為了防止除法結果為小數(shù)的情況,先將總頁碼和每頁顯示的紀錄數(shù)都轉化為小數(shù)形式,那么除的結果也為小數(shù)。通過Math.ceil(float)方法將該小數(shù)轉化為大于等于該小數(shù)的最小整數(shù),這個就是最終的總頁數(shù)。數(shù)據(jù)庫應用--分頁實現(xiàn)數(shù)據(jù)庫應用--分頁實現(xiàn)定位即將顯示的頁碼中第一個紀錄位置:sqlRst.absolute(
(int1)*intPageSize
+1
);通過絕對定位來制定結果集中指針的位置結果集中的指針下標從1開始每頁顯示4條紀錄intPageSize=4要顯示的頁碼該頁第一條紀錄下標該頁最后一條記錄的下表計算公式114(1-1)*4+1=1258(2-1)*4+1=53912(3-1)*4+1=9ingPage(int1)*intPageSize
+1實現(xiàn)步驟:根據(jù)條件查詢所有的紀錄使用rs.last()將指針移到最后一行,并應rs.getRow()獲得總計錄條數(shù)根據(jù)計算得到總的頁數(shù)對于每頁的顯示再使用rs.absolute()定位到本頁起始記錄使用rs.next()和每頁顯示的紀錄條數(shù)來具體的顯示紀錄例子:Pagination.jsp數(shù)據(jù)庫應用--分頁實現(xiàn)缺點:這種方式在某些數(shù)據(jù)庫(如oracle)的JDBC實現(xiàn)中差不多也是需要遍歷所有記錄,實驗證明在記錄數(shù)很大時速度非常慢。重用性不好改進方法:將在JSP中實現(xiàn)的數(shù)據(jù)庫連接方法放到javabean中去實現(xiàn),這樣可實現(xiàn)代碼的重用。數(shù)據(jù)庫應用--分頁實現(xiàn)例子:PageableBean.jsp看過上面三種實現(xiàn)方法后,對新的分頁機制有了一個目標,不與具體數(shù)據(jù)庫相關;盡可能做到代碼重用;盡可能與原JDBC接口的使用方法保持一致;盡可能高的效率。數(shù)據(jù)庫應用--分頁實現(xiàn)體驗項目——<網(wǎng)絡通訊錄>
本章我們要制作一個網(wǎng)絡通訊錄,本項目有五個模塊組成,分別是顯示成員、添加成員、修改成員、刪除成員和新用戶注冊。整體設計首先我們分析一下這個網(wǎng)絡通訊錄需要哪些功能:1.用戶登錄頁,實現(xiàn)用戶的登錄功能。2.顯示與登錄用戶相對應的通訊記錄頁面。3.實現(xiàn)向通訊錄中添加信息的功能。4.實現(xiàn)修改信息的功能。5.實現(xiàn)刪除通訊錄中的信息的功能。6.提供新用戶注冊的功能。 通過以上分析我們可以大致分析出通訊錄需要實現(xiàn)的功能,以及頁面的整體結構。數(shù)據(jù)庫設計
通過以上對通訊錄功能的描述可以分析出數(shù)據(jù)庫至少需要兩個表來保存信息,其中一個保存用戶信息,這個表起名為“users”。另一個表命名為“address”,用于保存用戶添加的通訊信息??偨Y掌握實例應用:數(shù)據(jù)庫分頁技術的實現(xiàn)項目實踐理論作業(yè)1、實現(xiàn)數(shù)據(jù)庫查詢分頁一般有幾種方式,分別簡單介紹?2、JSP與
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色環(huán)保型農(nóng)村房屋修建合同2篇
- 二零二五年度公司股權轉讓與品牌授權合同3篇
- 二零二五年度航空貨運公司駕駛員聘用合同協(xié)議書3篇
- 2024年中國特重潤滑油市場調(diào)查研究報告
- 2024年中國燃燒效率分析儀市場調(diào)查研究報告
- 2025年度農(nóng)產(chǎn)品電商平臺合作伙伴招募與管理合同3篇
- 2024年塑料掃帚頭項目可行性研究報告
- 2024年地面旋轉煙花項目可行性研究報告
- 《基于ANSYS-LS-DYNA的齒輪故障特性仿真分析》
- 2024年全自動識別分析紅外信號譯碼器項目可行性研究報告
- 2024中考語文《水滸傳》歷年真題(解析版)
- 接地電阻測試儀的操作課件
- 《機修工基礎培訓》課件
- 品質(zhì)黃燜雞加盟活動策劃
- DLT 754-2013 母線焊接技術規(guī)程
- 部編版小學道德與法治五年級上冊單元復習課件(全冊)
- 仙桃市仙桃市2023-2024學年七年級上學期期末數(shù)學檢測卷(含答案)
- 智慧農(nóng)場整體建設實施方案
- 航空公司個人年終總結(共12篇)
- 產(chǎn)品供貨方案、售后服務方案
- 蘇教版小學數(shù)學六年級上冊第4單元解決問題的策略重難點練習【含答案】
評論
0/150
提交評論