版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于struts2技術(shù)的跑步社區(qū)后臺系統(tǒng)的設(shè)計與實現(xiàn)摘要struts是目前廣受歡迎的基于mvc的java web框架,hibernate則是java web開發(fā)中一個功能強大的持久化中間件。struts與hibernate相結(jié)合在b/s系統(tǒng)開發(fā)中有著廣泛的應(yīng)用。本網(wǎng)絡(luò)跑步社區(qū)系統(tǒng)的開發(fā),正是使用了它們。本系統(tǒng)采用的是模塊化設(shè)計,并采用接口化編程思想降低模塊之間的耦合度。該系統(tǒng)主要采用struts框架,涉及到前臺頁面的展示,后臺與數(shù)據(jù)庫的交互,中間層業(yè)務(wù)邏輯的處理等。我所負責(zé)的是后臺方面的設(shè)計與實現(xiàn),用到了myeclipse開發(fā)工具,hibernate持久化中間件,以及servlet等技術(shù)。該系
2、統(tǒng)具備數(shù)據(jù)查詢、修改、增加、刪除等功能,實現(xiàn)了會員基本信息管理,短信息管理,好友管理,管理員后臺管理等模塊的全部功能。 系統(tǒng)具有界面直觀友好、操作簡單的特點,并且能夠承受多用戶同時上線,滿足了用戶在網(wǎng)絡(luò)交流方面的需求。關(guān)鍵詞 mvc模式;struts框架;hibernate;跑步社區(qū)the background system of running community web site based on the struts2 frameworkabstractstruts is a well-liked frame which on the basic of mvc at the presen
3、t time, and hibernate is a powerful persistent middleware in the development of java web. struts joins hibernate have widely applied in the development of b/s system.the running community system just used these technologies. the system adopts the modularity design and the mind of interface programmi
4、ng to reduce the coupling degree of each model.the system mainly uses the struts frame in the development. it references to the show of the front page, interaction with the database in the background, and dealing with the business-logic layer etc. i am responsible for the design and implementation o
5、f background management.i use myeclipse as the development tool, hibernate persistent middleware and servlet technology during my development process. the system have the function of querying data, modifying data, adding data, and deleteing data. it realize all the functions of four modules includin
6、g member information management, message management, friends management and manager background management. the system has friendly interface and simple operation, which can bear many users are online at the same time and satisfy users need on the matter of communicating online.keywords mvc; struts f
7、ramework; hibernate; running community目錄摘 要iabstractii1 緒 論11.1 開發(fā)背景11.2 開發(fā)意義11.3 開發(fā)環(huán)境11.3.1 開發(fā)語言11.3.2 開發(fā)工具11.3.3 開發(fā)框架21.3.4 struts2和 hibernate組合的優(yōu)點22 系統(tǒng)需求分析42.1 可行性研究分析42.1.1 理論可行性42.1.2 技術(shù)可行性分析42.1.3 經(jīng)濟可行性分析42.2 功能需求分析42.2.1 用戶自管理用例42.2.2 短信管理用例52.2.3 我的好友用例52.2.4 后臺管理用例63 總體設(shè)計73.1 系統(tǒng)模塊設(shè)計73.1.1 總
8、體設(shè)計框架73.1.2 用戶基本信息管理模塊設(shè)計框架73.1.3 短管理模塊設(shè)計框架83.1.4 聯(lián)系人管理模塊設(shè)計框架93.1.5 后臺管理模塊設(shè)計框架93.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計103.2.1 e-r圖103.2.2 各實體間的對應(yīng)關(guān)系圖113.3 數(shù)據(jù)庫具體表結(jié)構(gòu)的設(shè)計133.3.1 存放會員信息133.3.2 存放會員的個性化的信息143.3.3 存放會員級別的評判規(guī)則143.3.4 存放會員獲取積分的流水記錄153.3.5 存放積分動作153.3.6 存放短信信息153.3.7 存放好友名單163.3.8 黑名單163.3.9 管理員信息164 系統(tǒng)詳細設(shè)計174.1 建立數(shù)據(jù)庫174.
9、2 建立連接174.3 配置模塊174.3.1 配置web.xml174.3.2 配置struts.xml184.3.3 配置service和dao 架構(gòu)204.4 日志設(shè)計204.4.1 配置日志模塊214.4.2 日志信息214.5 程序設(shè)計224.5.1 用戶登陸功能設(shè)計224.5.2 修改個人空間功能設(shè)計234.5.3 發(fā)送信息功能設(shè)計254.5.4 收件箱的功能設(shè)計264.5.5 查詢好友的功能設(shè)計284.6 對本社區(qū)的說明294.6.1 查詢數(shù)據(jù)庫的說明294.6.2 使用本社區(qū)的說明315 系統(tǒng)測試與維護325.1 軟件測試325.1.1 測試簡介325.1.2 具體測試325.
10、1.3 測試結(jié)論365.2 運行和維護36結(jié) 論37參考文獻38致 謝40外文原文41中文翻譯481 緒 論1.1 開發(fā)背景21世紀(jì)是科技信息高速發(fā)展的時代,計算機網(wǎng)絡(luò)作為這一時代重要的生產(chǎn)工具,給各個國家?guī)砹司薮蟮陌l(fā)展機遇,已經(jīng)被應(yīng)用于許多領(lǐng)域,尤其是在管理領(lǐng)域,它可以簡化大量繁瑣的工作,提高工作效率,更重要的是能提高保密文件的安全性。為了在以用戶為中心的市場競爭中獲勝,各單位須對不斷變化的市場做出快速反應(yīng),把單位各關(guān)鍵部門結(jié)合成一體,形成一個堅強的信息共享共同體。國內(nèi)一些中小型企業(yè)為了提高自身的工作效率,適應(yīng)市場的需要,都實現(xiàn)了辦公自動化。1.2 開發(fā)意義隨著計算機的發(fā)展和普及,它已經(jīng)成
11、為人們獲取信息的一種方便、快捷、有效的手段?,F(xiàn)在我國很多管理機構(gòu)信息的管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機制已經(jīng)不能適應(yīng)時代的發(fā)展,必然被以計算機為基礎(chǔ)的信息管理所取代。跑步社區(qū)站點系統(tǒng)是專門為運動愛好者提供的一個交流的平臺,使跑步愛好者不需要進行面對面的交流,只需在網(wǎng)上查看運動愛好者的個人空間,從而了解他人的跑步愛好習(xí)慣,如果與自己的愛好相同或相似,就可以加對方為好友,并且能夠發(fā)送短信息給自己的跑步好友。而且運動愛好者之間可以在運動論壇中交流彼此對運動的看法道出運動愛好者之間的心聲。除此之外本系統(tǒng)管理者還可以通過后臺管理對注冊的會員信息和積分進行管理。1.3 開發(fā)環(huán)境1.3.1 開發(fā)語言
12、對hibernate語言簡介及其優(yōu)點:hibernate是一個數(shù)據(jù)持久層框架,是一種實現(xiàn)對象和關(guān)系之間映射(o/r mapping)的工具,它對jdbc進行了輕量級的對象封裝,使程序員可以使用對象編程思想來操作數(shù)據(jù)庫。它不僅提供了從java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機制。相對于使用jdbc和sql來操作數(shù)據(jù)庫,使用hibernate能大大的提高實現(xiàn)的效率。hibernate框架用配置文件的形式來定義java對象和數(shù)據(jù)表之間的映射關(guān)系,同時在更深的層面將數(shù)據(jù)表之間的關(guān)系解釋為java對象之間的繼承及包含等關(guān)系。通過使用hql語句將復(fù)雜的關(guān)系算法用對象的方式描述,在很大程度上簡化了對
13、數(shù)據(jù)的查詢,加快了開發(fā)的效率。在hibernate中有一個簡單而直觀的api,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要創(chuàng)建或修改這些對象,只需在程序中與它們進行交互,然后告訴hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務(wù)邏輯不再需要編寫煩瑣的jdbc語句,從而使數(shù)據(jù)持久層得到了極大的簡化。1.3.2 開發(fā)工具運用myeclipse開發(fā)工具,該開發(fā)工具是eclipse的一個插件。eclipse本身就是一個功能非常強大的開發(fā)工具,而myeclipse在功能上與tomcat進行了集成,并且能做到自動打包,并將包自動部署到服務(wù)器上。這從很大程度上提高了開發(fā)的效率,節(jié)約了開發(fā)的時間。myecli
14、pse提供了對多重平臺特性的支持。開發(fā)者可以使用他們感覺最舒適、最熟悉的平臺,例如windows、linux等。eclipse對每個平臺都有其單獨的圖形工具包,這使得應(yīng)用程序具有接近本地操作系統(tǒng)的外觀和更好的性能。1.3.3 開發(fā)框架用struts2實現(xiàn)mvc架構(gòu)。mvc(model-view-controller)由trygve reenskaug提出,首先被應(yīng)用在smalltalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。根據(jù)界面設(shè)計可變性的需求,mvc把交互系統(tǒng)的組成分解成模型、視圖、控制器三部分。模型(model)是軟件所處理問題邏輯在獨立外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了
15、問題的核心數(shù)據(jù)、邏輯和功能的計算關(guān)系,獨立于具體的界面表達和i/o操作。視圖(view)把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖??刂破鳎╟ontroller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進而實現(xiàn)對模型的計算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個視圖對應(yīng)一個控制器。模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都
16、應(yīng)反映到這些變化。因此,無論 何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實際上是一種模型的變化傳播機制。struts2是struts社區(qū)和webwork社區(qū)的共同成果,我們甚至可以說,struts2是webwork的升級版,他采用的正是webwork的核心,所以,struts2并不是一個不成熟的產(chǎn)品,相反,構(gòu)建在webwork基礎(chǔ)之上的struts2是一個運行穩(wěn)定、性能優(yōu)異、設(shè)計成熟的web框架。1.3.4 struts2和 hibernate組合的優(yōu)點典型的j2ee三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗
17、等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。 表現(xiàn)層是傳統(tǒng)的jsp技術(shù),其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅實的基礎(chǔ)。 中間層采用的hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細分為以下幾種。 web層,就是mvc模式里面的“c”(controller),負責(zé)控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的mvc框架采用struts。 service層(就是業(yè)務(wù)邏輯層),負責(zé)實現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以dao層為基礎(chǔ),通過對dao組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯
18、。 dao層,負責(zé)與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。 一個良好的框架可以讓開發(fā)人員減輕重新建立解決復(fù)雜問題方案的負擔(dān)和精力;它可以被擴展以進行內(nèi)部的定制化;并且有強大的用戶社區(qū)來支持它??蚣芡ǔD芎芎玫慕鉀Q一個問題。然而,你的應(yīng)用是分層的,可能每一個層都需要各自的框架。僅僅解決ui問題并不意味著你能夠很好的將業(yè)務(wù)邏輯和持久性邏輯和ui 組件很好的耦合。 在傳統(tǒng)的model 1的程序結(jié)構(gòu)中,只要有一點小的需求發(fā)生改變,將意味著放棄整個頁面。或者改寫。雖然前期的開發(fā)速度快,除非可以保證以后永遠不會改變應(yīng)用的結(jié)構(gòu),否則不要采用model 1的結(jié)構(gòu)。 采用hibernate作為持
19、久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M行系統(tǒng)分析、系統(tǒng)設(shè)計。 歸納起來,網(wǎng)絡(luò)跑步愛好者社區(qū)系統(tǒng)的開發(fā)與運行環(huán)境如下:采用b/s架構(gòu);服務(wù)器操作系統(tǒng):windows server;數(shù)據(jù)庫服務(wù)器:oracle 10g;web服務(wù)器:tomcat;開發(fā)工具:myeclipse軟件開發(fā)技術(shù):前臺界面 jsp, html,javascript,css后臺系統(tǒng) hibernate ,struts,servlet2 系統(tǒng)需求分析2.1 可行性研究分析2.1.1 理論可行性該系統(tǒng)是網(wǎng)上的一個虛擬平臺,能夠模擬現(xiàn)實中的交流過程,并且展示個人的風(fēng)采,滿足廣大運動愛好者的需求。同時也為商家展示自己的產(chǎn)
20、品,獲取用戶需求提供了方便。不管對那個用戶群體來說都起了很好的橋梁作用,一旦推出必將受到商家與個人的追捧。2.1.2 技術(shù)可行性分析運用myeclipse開發(fā)工具,該開發(fā)工具是eclipse的一個插件。eclipse本身就是一個功能非常強大的開發(fā)工具,而myeclipse在功能上與tomcat進行了集成,并且能做到自動打包,并將包自動部署到服務(wù)器上。這從很大程度上提高了開發(fā)的效率,節(jié)約了開發(fā)的時間。2.1.3 經(jīng)濟可行性分析網(wǎng)上運動社區(qū)的創(chuàng)建,降低了商家成本,擴大了客戶資源,打破了地域的界限,方便了人們的需要。所以,不論是商家還是客戶都是比較喜歡這種方式的??梢耘卸ㄟ\動社區(qū)還是比較有前景的???/p>
21、行性分析的目的,就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。通過需求階段對該系統(tǒng)的可行性進行了徹底分析,隨著計算機硬件的發(fā)展,各項功能日趨完善,使用myeclipse、oracle10g開發(fā)此系統(tǒng)無論從技術(shù)上、經(jīng)濟上、硬件上和操作上都是可行的。2.2 功能需求分析結(jié)合“基于struts2的跑步社區(qū)”的用戶信息,切實了解跑步運動愛好者們對整個系統(tǒng)期望具有的功能,分析所有收集的信息特點,決定系統(tǒng)具有會員信息管理,短信管理,好友管理,管理員后臺管理等功能模塊。2.2.1 用戶自管理用例1.注冊新用戶描述:用戶在新用戶信息頁面上輸入詳細信息,提交到服務(wù)器,結(jié)果是將信息保存到數(shù)據(jù)庫。參與者:
22、用戶。主方式:從瀏覽器上選擇注冊新用戶鏈接進入到注冊界面。異常方式:用戶提交新用戶信息后,服務(wù)器發(fā)現(xiàn)用戶登錄名已經(jīng)存在用戶提交的信息不完整。2.認證用戶描述:用戶輸入登錄名和密碼,提交到服務(wù)器,其結(jié)果是服務(wù)器驗證輸入信息,并將登錄信息存放到會話狀態(tài)中。如果用戶選擇了自動登陸,將用戶信息保存到cookie中,實現(xiàn)自動登陸功能。參與者:用戶。前提:用戶已經(jīng)注冊過。主方式:在地址欄中輸入登陸頁面地址,進入到登錄界面。其他方式:用戶選擇了自動登陸功能,進入主頁面自動登陸。異常方式:登錄名或密碼不對,用戶已經(jīng)登陸過了。3.導(dǎo)航欄描述:用戶在登陸成功后,在主頁上方可看到我的導(dǎo)航欄面板,其中包涵鏈接內(nèi)容:音
23、樂跑不停、跑步裝備庫、專業(yè)跑步指南、跑步論壇。參與者:用戶。主方式:在地址欄中輸入登陸頁面地址,進入到登錄界面,點擊各個鏈接跳轉(zhuǎn)到相應(yīng)的界面內(nèi)容。4.我的地盤描述:用戶在登陸成功后,在主頁下方可看到我的地盤這一面板,其中包涵鏈接內(nèi)容:我的信息、我的信箱、我的好友、個性空間。前提:用戶已經(jīng)登錄。主方式:從主頁中下方顯示的我的地盤欄目選擇相應(yīng)的項目鏈接。2.2.2 短信管理用例1.新建短信描述:用戶在我的信箱頁面上點擊寫紙條就可以跳轉(zhuǎn)到新建短信頁面,填寫好相應(yīng)的信息,提交給服務(wù)器,其結(jié)果是信息保存到數(shù)據(jù)庫,接收者能夠看到已收短信,發(fā)送者能看到已發(fā)短信。參與者:用戶。前提:用戶已經(jīng)登錄,接收者存在。
24、主方式:從我的地盤我的信箱中點擊寫紙條鏈接。2.收(發(fā))件箱描述:用戶在短信管理頁面上點擊收(發(fā))件箱就可以顯示自己的收(發(fā))件箱列表。參與者:用戶。前提:用戶已經(jīng)登錄。主方式:我的信箱中點擊收(發(fā))件箱鏈接。3.個性空間描述:用戶在個性空間頁面可以查看自己的個性空間面板,如果該用戶沒有創(chuàng)建個性空間,提示用戶創(chuàng)建個性空間。參與者:用戶。前提:用戶已經(jīng)登錄。主方式:從我的地盤面板點擊個性空間鏈接。2.2.3 我的好友用例1.我的好友描述:用戶在聯(lián)系人管理頁面上點擊好友名單就可以查看到所有好友的列表,還可以查看好友詳細信息,也可以刪除好友或者添加到黑名單。參與者:用戶。前提:用戶已經(jīng)登錄。主方式:
25、從我的地盤點我的好友鏈接好友名單。2黑名單描述:用戶在聯(lián)系人管理頁面上點擊黑名單就可以查看到所有黑名單的列表,還可以從好友名單中添加到黑名單,也可以將好友從黑名單移除。參與者:用戶。前提:用戶已經(jīng)登錄。主方式:從我的地盤點我的好友鏈接黑名單3.好友速配描述:用戶在聯(lián)系人管理頁面上點擊好友速配進入到速配頁面,可以選擇隨機匹配或者按照條件匹配。參與者:用戶。前提:用戶已經(jīng)登錄。主方式:從我的地盤點我的好友鏈接好友速配。2.2.4 后臺管理用例1.管理員登錄描述:在系統(tǒng)登錄首頁可選擇進入后臺,進行管理員登錄,完成管理員的相應(yīng)功能。參與者:管理員。主方式:在login界面點擊進入后臺鏈接。2.會員列表
26、描述:用戶在后臺管理頁面上點擊還原列表進入到會員列表顯示界面,可以查看所有已經(jīng)注冊會員的信息,以及刪除會員。參與者:用戶。前提:管理員經(jīng)登錄。主方式:從后臺管理系統(tǒng)點擊會員列表鏈接。3.積分動作描述:用戶在聯(lián)系人管理頁面上點擊好友速配進入到速配頁面,可以選擇隨機匹配或者按照條件匹配。參與者:用戶。前提:管理員已經(jīng)登錄。主方式:從后臺管理系統(tǒng)點擊積分動作鏈接。4.管理員密碼修改描述:用戶在聯(lián)系人管理頁面上點擊好友速配進入到速配頁面,可以選擇隨機匹配或者按照條件匹配。參與者:管理員。前提:管理員已經(jīng)登錄。主方式:從后臺管理系統(tǒng)點擊密碼修改鏈接。3 總體設(shè)計3.1 系統(tǒng)模塊設(shè)計3.1.1 總體設(shè)計框
27、架在前面的系統(tǒng)規(guī)劃與需求分析的基礎(chǔ)上,對該系統(tǒng)進行了總體設(shè)計,不僅能滿足用戶修改個人的各種基本信息,能夠創(chuàng)建和修改自己的個性空間,使更多的跑步愛好者了解自己,能夠隨機查找一個好友或根據(jù)條件查找到多個好友,而且還能夠給自己的好友發(fā)送短信,交流各自的跑步心得??傮w功能模塊如圖3-1所示:圖3-1 功能模塊結(jié)構(gòu)圖3.1.2 用戶基本信息管理模塊設(shè)計框架首先要實現(xiàn)它的基本功能,如用戶的注冊,登陸,密碼的找回,信息的修改等最基本的功能,而這些是需要用戶來完成的,也就是說可以定義在用戶管理的模塊中。為了更好的展示用戶的的個人特征,也就是我們平時說的個性化,我們可以加上一個個人空間的管理。于是我們可以定義出
28、用戶管理信息的用例圖,如圖3-2所示:圖3-2 用戶基本信息管理3.1.3 短管理模塊設(shè)計框架為了方便用戶間的交流系統(tǒng)提供一個收發(fā)信息的功能,它包括短信的創(chuàng)建,對已收信息和已發(fā)信息的刪除和查看等功能。其用例圖如圖3-3所示:圖3-3 短信息管理3.1.4 聯(lián)系人管理模塊設(shè)計框架聯(lián)系人管理模塊主要要實現(xiàn)對好友的管理和黑名單的管理可用如圖3-4的用例圖來表示:圖3-4 聯(lián)系人管理3.1.5 后臺管理模塊設(shè)計框架管理員為了更好的維護這個系統(tǒng)設(shè)計了后臺管理模塊主要實現(xiàn)對會員的管理、對積分動作的管理和對管理員的管理。其用例圖可用如圖3-5表示:圖3-5 后臺管理根據(jù)系統(tǒng)功能模塊結(jié)構(gòu)圖和管理流程,以及網(wǎng)絡(luò)
29、運動愛好者社區(qū)系統(tǒng)的需要總結(jié)出如下的數(shù)據(jù)字典。1.系統(tǒng)用戶數(shù)據(jù):包含的數(shù)據(jù)項有系統(tǒng)用戶名,密碼,性別,年齡,郵箱,省份,地址,密碼提示問題,密碼提示答案等。2.用戶個人空間數(shù)據(jù):包含的數(shù)據(jù)項有跑步觀點,跑步時間,跑步地點,跑步習(xí)慣,電話,上傳的圖片等。3.短信息數(shù)據(jù):包含的數(shù)據(jù)項有發(fā)送者,接收者,發(fā)送時間,標(biāo)題,內(nèi)容等。4.好友名單數(shù)據(jù):包含的數(shù)據(jù)項有自己的名字,好友的名字。5.黑名單數(shù)據(jù):包含的數(shù)據(jù)項有自己的名字,黑名單的名字。6.管理員數(shù)據(jù):包括管理員的名字,管理員的密碼,以及對管理員的描述。7.省份數(shù)據(jù):包括省份的代碼,省份的名稱,省份的id值8.積分等級數(shù)據(jù):最小積分,最大積分,等級名
30、稱,對應(yīng)頭像9.積分動作數(shù)據(jù):積分動作名稱,可獲積分,動作描述10.積分記錄數(shù)據(jù):用戶名稱,獲得時間等。3.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3.2.1 e-r圖在需求分析之后,數(shù)據(jù)庫設(shè)計的第一步就是對系統(tǒng)的概念結(jié)構(gòu)進行設(shè)計,設(shè)計的目標(biāo)是產(chǎn)生反映整個系統(tǒng)信息需求的整體數(shù)據(jù)庫的概念結(jié)構(gòu),描述概念結(jié)構(gòu)的工具就是er圖。各實體詳細信息的概念描述是第一步工作,各實體屬性關(guān)系圖如圖3-6至3-9所示:圖 3-6 用戶屬性關(guān)系圖圖 3-7 短信屬性關(guān)系圖圖 3-8 得分紀(jì)錄屬性關(guān)系圖圖 3-9 個人空間屬性關(guān)系圖3.2.2 各實體間的對應(yīng)關(guān)系圖在確認了實體具體信息后,下一步是確認各實體之間的對應(yīng)關(guān)系圖,各實體之間的關(guān)系圖
31、如圖3-10所示:圖 3-10 各實體間關(guān)系圖各數(shù)據(jù)表之間的對應(yīng)關(guān)系,特別是主外鍵對應(yīng)關(guān)系對數(shù)據(jù)庫的持久化操作有直接影響,涉及到數(shù)據(jù)表之間的級聯(lián)操作,雖然在數(shù)據(jù)表中已經(jīng)對各表之間的主外鍵關(guān)系進行了描述,但由于表較多,不便于總體了解他們之間的對應(yīng)關(guān)系,如圖3-11對所有表之間的主外鍵關(guān)系進行相應(yīng)描述:圖 3-11 表之間的主外鍵關(guān)系關(guān)系圖3.3 數(shù)據(jù)庫具體表結(jié)構(gòu)的設(shè)計在確定了各實體詳細信息后,下一步就是各實體在數(shù)據(jù)庫中的具體實現(xiàn),依據(jù)e-r圖中實體的具體信息,共設(shè)計了9張數(shù)據(jù)表,各表的字段信息,約束信息和描述如下:3.3.1 存放會員信息表3-1 memberinfo字段名字段類型約束或索引描述
32、idnumber(sequence)pk記錄流水號nicknamevarchar2(20)not null用戶昵稱passwordvarchar2(50)not nullmd5加密口令,頁面上限制為16字節(jié)gendervarchar2(1)not null性別表3-1(續(xù))字段名字段類型約束或索引描述agenumbernot null年齡emailvarchar2(100)not null電子郵件passwordquestionvarchar2(200)密碼提示問題passwordanswervarchar2(200)密碼提示問題答案provincecityvarchar2(20)所在省市ad
33、dressvarchar2(200)地址phonevarchar2(50)聯(lián)系電話pointnumberdefault=0當(dāng)前積分recommendervarchar2(20)推薦人registerdatedate注冊時間latestdatedate上次上線時間statusnumberdefault=00-正常 1-注銷 isonlinenumberdefault=00-下線 1-在線gradeidnumber等級id 外鍵3.3.2 存放會員的個性化的信息表3-2 memberspace字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號sportplacevarc
34、har2(20)運動地點sporttimevarchar2(20)運動時間sprothabitvarchar2(20)運動習(xí)慣sprotstarvarchar2(20)喜歡的運動明星cellphonevarchar2(20)正在使用的手機opinionvarchar2(200)個人對運動的看法iconvarchar2(50)個人空間頭像圖片存在的路徑memberidnumber會員id( reference memberinfo)3.3.3 存放會員級別的評判規(guī)則表3-3 graderecord字段名字段類型約束或索引描述idnumberpk記錄流水號表3-3(續(xù))字段名字段類型約束或索引描述
35、gradenamevarchar2(20)not null級別名稱iconpathvarchar2(50)not null每個級別分別對應(yīng)不同的頭像minpointnumbernot null積分的上限maxpointnumbernot null積分的下限3.3.4 存放會員獲取積分的流水記錄表3-4 pointrecord字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號nicknamevarchar2(20)not null獲取積分的會員receivedatedatenot null獲得積分的日期pointactionidnumbernot null所獲積分3.
36、3.5 存放積分動作表3-5 pointaction字段名字段類型約束或索引描述idnumber(sequence)pkactionnamevarchar2(20)標(biāo)示積分操作名稱,比如”register”表示會員注冊。pointnumbernot null可獲積分descriptionvarchar(200)描述3.3.6 存放短信信息表3-6 messagerecord字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號sendervarchar2(20)not null發(fā)件人登錄名receivervarchar2(20)not null收件人登錄名senddat
37、edatedefault=當(dāng)前時間, not null發(fā)送日期titlevarchar2not null短信標(biāo)題表 3-6 (續(xù))字段名字段類型約束或索引描述statusnumberdefault=00-未閱讀 1-已閱讀senderstatusnumberdefault=00-表示未刪除 1-表示已刪除(發(fā)送者)receiverstatusnumberdefault=00-表示未刪除 1-表示已刪除(接收者)contentvarchar2not null短信內(nèi)容3.3.7 存放好友名單表3-7 friendlist字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號
38、selfnamevarchar2(20)not null 會員登錄名friendnamevarchar2(20)not null 好友登錄名3.3.8 黑名單表3-8 blacklist字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號selfnamevarchar2(20)not null 會員登錄名blacknamevarchar2(20)not null 被加入黑名單者登錄名3.3.9 管理員信息表3-9 managerinfo字段名字段類型約束或索引描述idnumber(sequence)pk記錄流水號nicknamevarchar2(20)not null
39、 管理員登錄名passwordvarchar2(20)not null 管理員密碼4 系統(tǒng)詳細設(shè)計我負責(zé)的是后臺的設(shè)計與實現(xiàn),主要用到struts,hibernate,oracle等技術(shù),并完成于前臺界面的銜接。4.1 建立數(shù)據(jù)庫本系統(tǒng)數(shù)據(jù)庫使用oracle,數(shù)據(jù)庫名為“ex(系統(tǒng)默認的數(shù)據(jù)庫)”,下面簡單的介紹以下數(shù)據(jù)庫建立的過程。1.手工創(chuàng)建數(shù)據(jù)庫run,密碼設(shè)置為run。 2.手工創(chuàng)建run.sql文件,用語創(chuàng)建數(shù)據(jù)庫表。 3.創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)文件,執(zhí)行腳本run.sql。4.2 建立連接本系統(tǒng)使用hibernate連接oracle數(shù)據(jù)庫,其實其底層使用jdbc連接的oracle數(shù)據(jù)庫,連
40、接的配置界面如圖4-1:圖4-1 連接oracle數(shù)據(jù)庫的配置界面4.3 配置模塊目的:為了降低各個部分代碼的耦合性提高代碼的內(nèi)聚從而提高代碼的健狀性。以及便于代碼的后繼更新升級常常把一些有可能變動的需要從系統(tǒng)外圍傳入的數(shù)據(jù)通過配置文件(通常用xml文件的形式傳入)。4.3.1 配置web.xmlweb-app version=2.5 xmlns= xmlns:xsi=/2001/xmlschema-instance xsi:schemalocation= struts2 org.apache.struts2.dispatcher.ng.filter.strut
41、sprepareandexecutefilter struts2 /* authimg com.briup.run.web.servlet.authimg authimg /authimg html/login.jsp 4.3.2 配置struts.xml 在此展示部分struts代碼:/html/login.jsp/html/memberloginactionautologin/html/login.jsp/html/memberafterloginaction/html/login.jsp/web-inf/member/activity.jsp/html/login.jsp/html/lo
42、gin.jsp/html/register.jsp/html/passwd_missing.jsp/html/passwd_missing.jsp/html/login.jsp/html/exception.jsp/html/memberafterloginaction/html/exception.jsp4.3.3 配置service和dao 架構(gòu)service層和dao層結(jié)構(gòu)如圖4-2所示:圖4-2 service層和dao層分布4.4 日志設(shè)計功能:通過把系統(tǒng)運行的狀態(tài)信息寫入日志,管理員可以清楚地看到系統(tǒng)當(dāng)前運行的狀態(tài)以及系統(tǒng)出現(xiàn)異常的原因以。這樣便于管理員對系統(tǒng)的維護。4.4.1 配
43、置日志模塊部分配置代碼:#log4j.rootlogger=debug,a1,rlog4j.rootlogger=info,a1,rlog4j.appender.a1=org.apache.log4j.consoleappenderlog4j.appender.a1.layout=org.apache.log4j.patternlayoutlog4j.appender.a1.layout.conversionpattern=%dyyyy-mm-dd hh:mm:ss,sss %t %c %p - %m%nlog4j.appender.r=org.apache.log4j.rollingfile
44、appenderlog4j.appender.r.file=bbscs7log.txtlog4j.appender.r.maxfilesize=500kblog4j.appender.r.maxbackupindex=10log4j.appender.r.layout=org.apache.log4j.patternlayoutlog4j.appender.r.layout.conversionpattern=%dyyyy-mm-dd hh:mm:ss,sss %t %c %p - %m%n#erceptor=debug4.4.2 日志信息如果在數(shù)據(jù)庫連接異常的時候就會輸出如下的日志信息用于可以很容易通過這個日志的信息知道系統(tǒng)的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程施工合同履約保證金擔(dān)保協(xié)議3篇
- 二零二五年度農(nóng)場農(nóng)業(yè)保險投保合同
- 2025年度個人之間房屋裝修借款合同范本4篇
- 2025年度苗木種植基地土地流轉(zhuǎn)與租賃合同
- 2025年高端酒店集團品牌合作資金引進居間協(xié)議3篇
- 二零二五年度同安區(qū)二手房交易稅費減免專項合同
- 2025年度投資融資經(jīng)紀(jì)代理委托合同規(guī)范范本3篇
- 上海二手房交易細節(jié)須知協(xié)議指南(2024版)版B版
- 二零二五年度古典園林羅馬柱安裝服務(wù)協(xié)議3篇
- 專利申請?zhí)幚韺m椃?wù)合同
- 醫(yī)療健康大數(shù)據(jù)平臺使用手冊
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細目表四級
- 撂荒地整改協(xié)議書范本
- GB/T 20878-2024不銹鋼牌號及化學(xué)成分
- 診所負責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 會陰切開傷口裂開的護理查房
- 實驗報告·測定雞蛋殼中碳酸鈣的質(zhì)量分數(shù)
- 部編版小學(xué)語文五年級下冊集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
- 《工程結(jié)構(gòu)抗震設(shè)計》課件 第10章-地下建筑抗震設(shè)計
評論
0/150
提交評論