版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
JSP與Javabean綜合應(yīng)用目標(biāo)掌握實(shí)例應(yīng)用:數(shù)據(jù)庫分頁技術(shù)的實(shí)現(xiàn)項(xiàng)目實(shí)踐體驗(yàn)項(xiàng)目——<網(wǎng)絡(luò)通訊錄>
本章我們要制作一個網(wǎng)絡(luò)通訊錄,本項(xiàng)目有五個模塊組成,分別是顯示成員、添加成員、修改成員、刪除成員和新用戶注冊。實(shí)現(xiàn)數(shù)據(jù)庫查詢分頁一般有以下幾種方式:使用HttpSession或有狀態(tài)bean實(shí)現(xiàn)緩存使用Vector實(shí)現(xiàn)緩存使用ResultSet實(shí)現(xiàn)緩存使用數(shù)據(jù)庫自身的功能實(shí)現(xiàn)Oracle,MySql數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)使用HttpSession實(shí)現(xiàn)分頁將查詢結(jié)果緩存在HttpSession或有狀態(tài)bean中,翻頁的時候從緩存中取出一頁數(shù)據(jù)顯示。兩個主要的缺點(diǎn):用戶可能看到的是過期數(shù)據(jù);如果數(shù)據(jù)量非常大時第一次查詢遍歷結(jié)果集會耗費(fèi)很長時間,并且緩存的數(shù)據(jù)也會占用大量內(nèi)存,效率明顯下降。數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)使用Vector實(shí)現(xiàn)緩存先將所有記錄都select出來,然后將ResultSet中的數(shù)據(jù)都get出來,存入Vector等集合類中,再根據(jù)所需分頁的大小,頁數(shù),定位到相應(yīng)的位置,讀取數(shù)據(jù)
缺點(diǎn)代碼的效率不高程序結(jié)構(gòu)和使用的方便性上很糟糕的。比如,這種做法支持的字段類型有限,int,double,String類型還比較好處理,如果碰到Blob,Text等類型,實(shí)現(xiàn)起來就很麻煩了數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)使用ResultSet實(shí)現(xiàn)緩存每次翻頁都查詢一次數(shù)據(jù)庫,從ResultSet中只取出一頁數(shù)據(jù)該結(jié)果集中的指針可以隨意移動實(shí)現(xiàn)分頁需要的參數(shù)intintPageSize;//一頁顯示的記錄數(shù)intintRowCount;//記錄總數(shù)intintPageCount;//總頁數(shù)intintPage;//待顯示頁碼數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)總的紀(jì)錄數(shù):sqlRst.last();//光標(biāo)在最后一行intRowCount=sqlRst.getRow();//獲得當(dāng)前行號記算總頁數(shù)intPageCount=(int)Math.ceil
(
(float)intRowCount/(float)intPageSize
);為了防止除法結(jié)果為小數(shù)的情況,先將總頁碼和每頁顯示的紀(jì)錄數(shù)都轉(zhuǎn)化為小數(shù)形式,那么除的結(jié)果也為小數(shù)。通過Math.ceil(float)方法將該小數(shù)轉(zhuǎn)化為大于等于該小數(shù)的最小整數(shù),這個就是最終的總頁數(shù)。數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)定位即將顯示的頁碼中第一個紀(jì)錄位置:sqlRst.absolute(
(int1)*intPageSize
+1
);通過絕對定位來制定結(jié)果集中指針的位置結(jié)果集中的指針下標(biāo)從1開始每頁顯示4條紀(jì)錄intPageSize=4要顯示的頁碼該頁第一條紀(jì)錄下標(biāo)該頁最后一條記錄的下表計算公式114(1-1)*4+1=1258(2-1)*4+1=53912(3-1)*4+1=9ingPage(int1)*intPageSize
+1實(shí)現(xiàn)步驟:根據(jù)條件查詢所有的紀(jì)錄使用rs.last()將指針移到最后一行,并應(yīng)rs.getRow()獲得總計錄條數(shù)根據(jù)計算得到總的頁數(shù)對于每頁的顯示再使用rs.absolute()定位到本頁起始記錄使用rs.next()和每頁顯示的紀(jì)錄條數(shù)來具體的顯示紀(jì)錄例子:Pagination.jsp數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)缺點(diǎn):這種方式在某些數(shù)據(jù)庫(如oracle)的JDBC實(shí)現(xiàn)中差不多也是需要遍歷所有記錄,實(shí)驗(yàn)證明在記錄數(shù)很大時速度非常慢。重用性不好改進(jìn)方法:將在JSP中實(shí)現(xiàn)的數(shù)據(jù)庫連接方法放到j(luò)avabean中去實(shí)現(xiàn),這樣可實(shí)現(xiàn)代碼的重用。數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)例子:PageableBean.jsp看過上面三種實(shí)現(xiàn)方法后,對新的分頁機(jī)制有了一個目標(biāo),不與具體數(shù)據(jù)庫相關(guān);盡可能做到代碼重用;盡可能與原JDBC接口的使用方法保持一致;盡可能高的效率。數(shù)據(jù)庫應(yīng)用--分頁實(shí)現(xiàn)體驗(yàn)項(xiàng)目——<網(wǎng)絡(luò)通訊錄>
本章我們要制作一個網(wǎng)絡(luò)通訊錄,本項(xiàng)目有五個模塊組成,分別是顯示成員、添加成員、修改成員、刪除成員和新用戶注冊。整體設(shè)計首先我們分析一下這個網(wǎng)絡(luò)通訊錄需要哪些功能:1.用戶登錄頁,實(shí)現(xiàn)用戶的登錄功能。2.顯示與登錄用戶相對應(yīng)的通訊記錄頁面。3.實(shí)現(xiàn)向通訊錄中添加信息的功能。4.實(shí)現(xiàn)修改信息的功能。5.實(shí)現(xiàn)刪除通訊錄中的信息的功能。6.提供新用戶注冊的功能。 通過以上分析我們可以大致分析出通訊錄需要實(shí)現(xiàn)的功能,以及頁面的整體結(jié)構(gòu)。數(shù)據(jù)庫設(shè)計
通過以上對通訊錄功能的描述可以分析出數(shù)據(jù)庫至少需要兩個表來保存信息,其中一個保存用戶信息,這個表起名為“users”。另一個表命名為“address”,用于保存用戶添加的通訊信息。總結(jié)掌握實(shí)例應(yīng)用:數(shù)據(jù)庫分頁技術(shù)的實(shí)現(xiàn)項(xiàng)目實(shí)踐理論作業(yè)1、實(shí)現(xiàn)數(shù)據(jù)庫查詢分頁一般有幾種方式,分別簡單介紹?2、JSP與
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貸款延期補(bǔ)充協(xié)議書范本
- 2024居間合同樣的合同
- 工程測量設(shè)計合同
- 培訓(xùn)機(jī)構(gòu)合作合同樣本
- 技術(shù)許可與知識產(chǎn)權(quán)保護(hù)
- 國有企業(yè)下崗職工出中心與失業(yè)保險“并軌”協(xié)議書
- 2024配方轉(zhuǎn)讓協(xié)議標(biāo)準(zhǔn)文本
- 工程合同簽訂方法
- 房屋租賃合同提前解除的策略與建議
- 園林綠化承包經(jīng)營合同樣本
- GB/T 26358-2022旅游度假區(qū)等級劃分
- YS/T 337-2009硫精礦
- 跆拳道課堂教學(xué)計劃表
- GB/T 25840-2010規(guī)定電氣設(shè)備部件(特別是接線端子)允許溫升的導(dǎo)則
- GB/T 18972-2017旅游資源分類、調(diào)查與評價
- GB/T 12239-2008工業(yè)閥門金屬隔膜閥
- GB/T 10822-2003一般用途織物芯阻燃輸送帶
- 微生物實(shí)驗(yàn)室管理培訓(xùn)考核試題含
- 手機(jī)攝影PPT學(xué)習(xí)課件(攝影的七大要素)
- 換藥,拆線課件
- 生物武器1課件
評論
0/150
提交評論