【正文】
st 非常適合做菜單,其可移植性非常出色。本科課題的 主 菜 單采用九宮格的設(shè)計(jì)方案,可以彌補(bǔ)以上的不足。由于無線網(wǎng)絡(luò)連接速度慢 ,具有有很大的延時(shí) ,如果將聯(lián)網(wǎng)操作放在主線程中容易導(dǎo)致主線程的阻塞,所以一般在 MIDlet 應(yīng)用程序中 把聯(lián)網(wǎng)操作放在一個(gè)單獨(dú)的線程中 。 HttpListener 接口的定義如下: public interface HttpListener{ public abstract void onSuccess(byte[] data, int index)。 //連接錯(cuò)誤 public abstract void onProgress(int persent)。 //獲得響應(yīng)長度 ,開始下載 } (3)用 Form 提交數(shù)據(jù) 用戶界面中 需要進(jìn)行網(wǎng)絡(luò)連接操作的 Form 里的 Item 組件在需要向服務(wù)器傳輸數(shù)據(jù)時(shí)采用 my 框架的 Item 組件,便于服務(wù)器端采集數(shù)據(jù)。 用戶界面導(dǎo)航的設(shè)計(jì) 經(jīng)典的模型 視圖 控制器模式( ModelViewController, MVC)可用 于 用戶界面的導(dǎo)航。但這種機(jī)制也存在一些缺點(diǎn):一是每一個(gè)事件都需要一個(gè)唯一標(biāo)志,控制器中的 switchcase 語句會隨著界面的增加而增加,變得越來越難以維護(hù);二是控制器引用了所有的 View,這些 View 在程序啟動(dòng)時(shí)就被初始化,導(dǎo) 致了較大的內(nèi)存基于 J2ME/J2EE的手機(jī)校友錄系統(tǒng)設(shè)計(jì) 27 開銷。下一步是指完成了但前的任務(wù),需要進(jìn)入下一個(gè)界面,比如填寫了發(fā)表的留言表單后進(jìn)行提交。在 UI 的構(gòu)造器中將前面或后面的界面?zhèn)鬟f到當(dāng)前對象,用這個(gè)方法來解決前進(jìn)或后退的問題雖然可行,但這樣做會導(dǎo)致界面之間的耦合度大大提高,如果需求發(fā)生變化,重構(gòu)的工作量較大,且程序不易維護(hù)。由于棧是后進(jìn)先出的結(jié)構(gòu),這和程序的邏輯非常吻合。堆棧的內(nèi)部結(jié)構(gòu)如圖 53所示: 發(fā)表留言 我的班級列表 主菜單 圖 53 堆棧的內(nèi)部結(jié)構(gòu) 并不是所有的界面都要壓入棧中, 比如網(wǎng)絡(luò)操作的等待界面、提示界面等,所以必須在程序?qū)崿F(xiàn)中考慮到各種可能出現(xiàn)的情況。 if((!(WaitForm)) amp。 (!(Alert))) { if((MainMenu)){ if(!()) { ()。 } else if(!() amp。 !().equals(displayable)) { 集美大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 28 //如果下一個(gè)界面是當(dāng)前界面,則不壓棧 (displayable)。 數(shù)據(jù)關(guān)系模型 根據(jù)需求分析和用例分 析,該系統(tǒng)的數(shù)據(jù)庫可以有以下實(shí)體構(gòu)成: ( 1) 用戶表 Users( 用戶編號,用戶名,密碼,真實(shí)姓名,性別,生日, 號碼,電話號碼, MSN帳號, Email地址,聯(lián)系地址,工作單位 ) ( 2) 班級表 Classes( 班級編號,班級名稱,班主任姓名,學(xué)校編號,創(chuàng)建時(shí)間 ) ( 3) 學(xué)校表 Schools( 學(xué)校編號,學(xué)校名稱,所在省份 ) ( 4) 訪問記錄表 Records( 訪問記錄編號,用戶編號,登錄時(shí)間,登錄 IP) ( 5) 留言表 Messages( 留言編號,留言內(nèi)容,作者編號,班級編號,留言時(shí)間 ) ( 6) 紙條表 Scrips( 紙條編號,發(fā)送者編號,接收者編號,發(fā)送時(shí)間,紙條內(nèi)容,未讀標(biāo)記 ) ( 7) 成員記錄表 Members( 成員記錄編號,班級編號,成員編號,管理員標(biāo)記 ) 基于 J2ME/J2EE的手機(jī)校友錄系統(tǒng)設(shè)計(jì) 29 實(shí)體 關(guān)系 模型 系統(tǒng)的實(shí)體 關(guān)系( EntityRelationship, ER)模型如圖 54所示: F K _R e f e r e n ce _C l a sse s_S ch o o l s_S ch o o l I DF K _R e f e r e n ce _C l a sse s_U se r s_U se r I DF K _R e f e r e n ce _S cr i p s_U se r s_R e ce i ve r I DF K _R e f e r e n ce _S cr i p s_U se r s_S e n d e r I DF K _R e f e r e n ce _M e ssa g e s_U se r s_W r i t e r I DF K _R e f e r e n ce _R e co r d s_U se r s_U se r I DF K _R e f e r e n ce _M e ssa g e s_C l a sse s_C l a ssI DF K _R e f e r e n ce _M e m b e r s_C l a sse s_C l a ssI DF K _R e f e r e n ce _M e m b e r s_U se r s_U se r I DU s e rs用戶編號用戶ID密碼姓名性別生日Q Q 號碼電話號碼M SN 帳號Em a il地址地址單位注冊時(shí)間上次登錄時(shí)間在線標(biāo)記bigintc h a r(2 0 )c h a r(2 0 )c h a r(3 0 )c h a r(1 )d a t ec h a r(2 0 )c h a r(2 0 )c h a r(3 0 )c h a r(3 0 )c h a r(3 0 )c h a r(3 0 )d a t e t im ed a t e t im ebool p k Sc h o o ls學(xué)校編號學(xué)校名稱省份bigintc h a r(3 0 )v a rc h a r(2 0 ) p k C la s s e s班級編號班級名稱班主任創(chuàng)建者編號學(xué)校編號創(chuàng)建日期bigintc h a r(3 0 )c h a r(1 5 )bigintbigintd a t e t im e p k f k 2 f k 1 M e s s a g e s留言編號留言內(nèi)容作者編號班級編號留言時(shí)間bigintt e x tbigintbigintd a t e t im e p k f k 1 f k 2 Sc ri p s紙條編號發(fā)送者編號接收者編號發(fā)送時(shí)間紙條內(nèi)容未讀標(biāo)記bigintbigintbigintd a t e t im et e x tbool p k f k 2 f k 1 R e c o rd s訪問記錄編號用戶編號登錄時(shí)間登錄IPbigintbigintd a t e t im ec h a r(1 5 ) p k f k M e m b e rs成員記錄編號班級編號成員編號管理員標(biāo)記bigintbigintbigintbool p k f k 1 f k 2 圖 54 ER模型圖 集美大學(xué)本科生畢業(yè)設(shè)計(jì) (論文 ) 30 數(shù)據(jù)字典 系統(tǒng)的數(shù)據(jù)字典如表 51到表 57所示: 表 51 用戶表( Users) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 用戶編號 ID bigint TRUE FALSE 用戶 ID UserID char(20) 20 FALSE FALSE 密碼 Password char(20) 20 FALSE FALSE 姓名 Name char(30) 30 FALSE FALSE 性別 Sex char(1) 1 FALSE FALSE 生日 Birthday date FALSE FALSE 號碼 Numb char(20) 20 FALSE FALSE 電話號碼 TelNumb char(20) 20 FALSE FALSE MSN帳號 MSN char(30) 30 FALSE FALSE Email地址 Email char(30) 30 FALSE FALSE 地址 Address char(30) 30 FALSE FALSE 單位 Company char(30) 30 FALSE FALSE 注冊時(shí)間 RegDate datetime FALSE FALSE 上次登錄時(shí)間 LastLogin datetime FALSE FALSE 在線標(biāo)記 isOnline bool FALSE FALSE 表 52 班級 表( Classes) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 班級編號 ID bigint TRUE FALSE 班級名稱 Name char(30) 30 FALSE FALSE 班主任 Teacher char(15) 15 FALSE FALSE 創(chuàng)建者編號 CreaterID bigint FALSE TRUE 學(xué)校編號 SchoolID bigint FALSE TRUE 創(chuàng)建日期 CreateTime datetime FALSE FALSE 表 53 學(xué)校 表( Schools) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 學(xué)校編號 ID bigint TRUE FALSE 學(xué)校名稱 Name char(30) 30 FALSE FALSE 省 份 Province varchar(20) 20 FALSE FALSE 基于 J2ME/J2EE的手機(jī)校友錄系統(tǒng)設(shè)計(jì) 31 表 54 訪問記錄 表( Records) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 訪問記錄編號 ID bigint TRUE FALSE 用戶編號 UserID bigint FALSE TRUE 登錄時(shí)間 LoginTime datetime FALSE FALSE 登錄 IP LoginIP char(15) 15 FALSE FALSE 表 55 留言 表( Messages) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 留言編號 ID bigint TRUE FALSE 留言內(nèi)容 Content text FALSE FALSE 作者編號 WriterID bigint FALSE TRUE 班級編號 ClassID bigint FALSE TRUE 留言時(shí)間 WriteTime datetime FALSE FALSE 表 56 紙 條 表( Scrips) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 紙條編號 ID bigint TRUE FALSE 發(fā)送者編號 SenderID bigint FALSE TRUE 接收者編號 ReceiverID bigint FALSE TRUE 發(fā)送時(shí)間 WriteTime datetime FALSE FALSE 紙條內(nèi)容 Content text FALSE FALSE 未讀標(biāo)記 isRead bool FALSE FALSE 表 57 班級成員 表( Members) 名稱 代碼 數(shù)據(jù)類型 長度 主 鍵 外鍵 成員記錄編號 ID bigint TRUE FALSE 班級編號 ClassID bigint FALSE TRUE 成員編號 UserID bigint FALSE TRUE 管理員標(biāo)記 isManager bool FALSE FALSE 對象 關(guān)系映射 對象 關(guān)系映射( ObjectRelation Mapping, ORM)模式指的是在單個(gè)組件中負(fù)責(zé)所有實(shí)體域?qū)ο蟮某志没?,封裝數(shù)據(jù)的訪問細(xì)節(jié)。 b) 數(shù)據(jù)庫連接出錯(cuò)時(shí),應(yīng)作出正確的處理。 d) 對于安全性問題給予充分的重視,若不滿足條件則應(yīng)做出正確的處理。 a) 服務(wù)器端應(yīng)返回相應(yīng)的響應(yīng)代碼給客戶端,并提示給用戶。 基于 J2ME/J2EE的手機(jī)校友錄系統(tǒng)設(shè)計(jì) 33 c) 如果不能保證安全性,則提示用戶必要的