java編寫帶過濾分頁的通訊錄

2021-06-23 07:29:35 字數 3803 閱讀 1915

這是設計圖:

下面便是我製作整個,這個帶過濾分頁條件的通訊錄的流程:

以上程式設計圖可能會有很多問題吧,請大家多多指教

1.把頁面表單的資料提交到servlet後,得到引數值。想要獲取過濾後的分頁,無非在sql就是加上過濾條件。這就是我顯示主頁的**。

}下面,詳細分析其構造吧:

2.想要判斷傳遞過來的引數是否為空值,定義乙個工具類stringutils類,定義乙個isblank方法,

幫我們判斷是否為空值,返回乙個boolean型別。

public class stringutils 

}

3.定義乙個whereclausehelper 工具類,定義乙個空字串whereclause,在定義乙個list> parameters型別的集合。

定義兩個addwherecondition,第乙個方法引數為(string conndition , object...args),判斷是否第一次呼叫這個類的方法

通過判斷whereclause是否為空,如果為空則是第一次呼叫這個方法,那麼在這個conndition前面加上「where」關鍵字。

如果不是第一次呼叫,那麼就在conndition前面加上"and"關鍵字。遍歷這個args陣列,每次遍歷的時候都把它加到parameters

集合裡面,最後方法返回當前物件(這樣就可以實現多次呼叫這個方法來拼接字串了)。第二個方法addwherecondition,

裡面引數為(boolean b , string conndition , object...args),這個方法就是用來判斷傳遞servlet進來的引數值

是否為空,乙個判斷條件,如果這個b為true的話,在判斷條件裡面呼叫前面的addwherecondition方法,返回值為

通過呼叫這個類的物件,就可以得到要新增的條件,條件對應的引數(例如:條件:where name =? 引數:name值)

public class whereclausehepler 

else

//當判斷完以後,把引數放到集合裡面,儲存起來

for(object o : objects)

return this;//返回當前物件,方便實現多次迴圈呼叫判斷 }

/***

* @param b 判斷條件,看引數是否為空,可以通過工具類stringutils幫助我們判斷

* @param conndition 傳給上乙個方法的sql語句

* @param objects 傳給上乙個方法的引數

* @return

*/public whereclausehepler addwherecondition(boolean b ,string conndition , object...objects)

return this; }

public string getwhereclause()

public listgetparameters()

public void setwhereclause(string whereclause)

public void setparameters(listparameters)

}

4.在dao實現類裡面,定義乙個find方法,傳入引數為

(int currentpage , int pagesize ,  whereclausehelper whereclausehelper)

此時可以利用當前頁面數currentpage ,頁面最大記錄pagesize,

乙個 whereclausehelper (用來獲取拼接後的sql語句,對應的引數)。

此時通過計算得到頁面起始下標startindex,最大記錄數則為pagesize值,可以直接呼叫。再根據查詢sql傳入引數,

得到表中總記錄數,通過查詢得到表中,當前頁面記錄的全部資料的乙個集合。再把這四個引數即(總記錄數,集合)

通過構造方法傳到乙個queryresult類中(定義的成員變數存 起來)。

public queryresult find(int currentpage, int pagesize,

whereclausehepler whereclausehepler) throws exception catch (sqlexception e)

finally

}

/**

* 這個類,用來儲存分頁過濾查詢後的,總記錄數 , 頁面記錄的資料集合

* @author xingxing

* */

public class queryresult

public void setcountnum(int countnum)

public listgetlist()

public void setlist(listlist)

public queryresult(int countnum, listlist)

public queryresult()

}

5.在servlet中,想要初始化當前頁面值,和當前頁面最大記錄數。建立乙個servletutil類,(傳入request,引數值,預設值)用乙個try,catch塊判斷是否為空,如果不為空

則把值進行強轉為int型別,返回強轉後的值。如果有引數為空轉換異常,那麼就在catch塊裡面進行,則返回乙個預設值。

public class servletutils catch(exception e)}}

6.在servlet類中,把獲取的過濾引數值,先呼叫whereclausehelper 類,在把這個whereclausehelper 物件傳遞到dao實現類

的find方法中,返回乙個queryresult。再獲取queryresult中的(最大記錄數,當前頁面聯絡人集合)。再呼叫servletutils

方法,對當前頁面curretpage,當前頁面最大記錄數pagesize進行初始化。把最大記錄數,聯絡人集合,當前頁面,最大記錄數

傳到pagebean類的構造方法中,得到乙個pagebean物件。這樣就可以把這個pagebean物件放進域裡面,**到jsp頁面

進行顯示資料。

以上就是,我做的專案全過程了,有一些底層的增刪改查,沒有寫出來,和jsp頁面顯示

的**也沒有新增上。請多多指教

C 編寫的通訊錄

通訊錄系統主要功能使用者的登入以及資料的維護。使用者登入 在資料庫裡設定user表,對具有使用者名稱和密碼的人方可訪問資料庫中其他資料。資料的維護 包括資料的查詢 新增 修改 刪除的功能,對資料庫中聯絡人進行各種操作。一 有較為美觀簡潔大方的選單,能保證使用者方便 直觀 快捷的熟悉並使用軟體的各項功...

java的樹形通訊錄

最近用到企業通訊錄,雖然以前也開發過,但是用的是jsf,拼成的樹形,及其笨重和難維護。後來就想到直接生成json格式字串,頁面上也好展現。首先取出每個部門的聯絡人 for int i 0 i deplist.size i 做一次巢狀迴圈,取出部門的所有子部門 for int j 0 j deplis...

用C語言編寫通訊錄

include include define null 0 define len sizeof struct student struct student int n struct student creat void p2 next null return head void print stru...