【正文】
static SessionFactory getSessionFactory() { return factory。 }else{ session = ()。 if(()==null){ session = ()。 factory = ()。 static { conf = new Configuration()。 private static ThreadLocalSession tl = new ThreadLocalSession()。import 。import 。其結(jié)構(gòu)如表59所示。其結(jié)構(gòu)如表58所示。其結(jié)構(gòu)如表57所示。其結(jié)構(gòu)如表56所示。表54 course 的結(jié)構(gòu)Tab54 the structure of course字段名稱(chēng)類(lèi)型約束描述idint(5)auto_increment/pk表主鍵idcidint(5)/課程idamevarchar(30)/課程名(5)留言板表 quickmessage留言板表的詳細(xì)信息,結(jié)構(gòu)如表55所示。 teacher的結(jié)構(gòu)Tab53 teacher structure字段名稱(chēng)類(lèi)型約束描述idint(20)auto_increment/pk教師idEmailvarchar(50)/用戶(hù)帳號(hào)Tnamevarchar(50)/老師名字Sexvarchar(20)/性別sidvarcher(18)/身份證號(hào)agevarchar(5)/年齡universityvarchar(50)/大學(xué)名稱(chēng)Professionvarchar(50)/專(zhuān)業(yè)名稱(chēng)Statusvarchar(20)/年級(jí)或在職教師Languagevarchar(20)/外語(yǔ)級(jí)別describingText/自我描述phonevarchar(50)/聯(lián)系電話(huà)photovarchar(20)/照片文件名Addressvarchar(200)/住址(4)課程表 course課程表表示課程的基本信息。表52 student的結(jié)構(gòu)Tab52 studentstructure字段名稱(chēng)類(lèi)型約束描述idint(20)auto_increment學(xué)員idvarchar(50)/用戶(hù)帳號(hào)snamevarchar(50)/學(xué)生名字sexvarchar(20)/性別statusvarchar(20)/所在年級(jí)coursevarchar(100)/要補(bǔ)課程situationvarchar(200)/學(xué)習(xí)水平(如 一般)zonevarchar(20)/所在縣(區(qū))phonevarchar(50)/聯(lián)系電話(huà)addressvarchar(200)/聯(lián)系地址(3)教師表 teacher教師表用來(lái)表示教師的詳細(xì)信息。在本系統(tǒng)中數(shù)據(jù)庫(kù)具體表結(jié)構(gòu)的設(shè)計(jì):(1)用戶(hù)基本信息表 user用戶(hù)信息表用來(lái)記錄用戶(hù)的一些基本信息,其結(jié)構(gòu)如表51所示。根據(jù)上述分析可對(duì)應(yīng)的實(shí)體關(guān)系圖如下: 屬性 實(shí)體間聯(lián)系 實(shí)體類(lèi)型圖52 ER圖的元素說(shuō)明 ER diagram of the elements that圖53 總體ER圖 ER among the various entities of the overall plan圖54 用戶(hù)信息ER圖Fig 54 user information er chart圖55 教師信息ER圖Fig55 teachers information er chart圖56 學(xué)生信息ER圖Fig 56 students information er chart圖57 課程信息ER圖Fig57 Course information er chart圖58 留言板信息ER圖Fig58 Message information er chart圖59 大學(xué)信息ER圖Fig 59 University information er chart圖510 訂單信息ER圖Fig 510 Order information er chart圖511 新聞信息ER圖Fig 511 news information er chart 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)通過(guò)E-R圖分析,下面設(shè)計(jì)具體的邏輯結(jié)構(gòu)。ER模型是獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來(lái)描述某個(gè)特定組織關(guān)心的信息結(jié)構(gòu),這類(lèi)模型稱(chēng)為“概念數(shù)據(jù)模型”[3]。 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)在數(shù)據(jù)庫(kù)技術(shù)中,我們用模型的概念描述數(shù)據(jù)庫(kù)的結(jié)構(gòu)與語(yǔ)義,對(duì)現(xiàn)實(shí)世界進(jìn)行抽象。從數(shù)據(jù)應(yīng)用系統(tǒng)和開(kāi)發(fā)的全過(guò)程來(lái)考慮,數(shù)據(jù)庫(kù)的設(shè)計(jì)可分為六個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)的運(yùn)行與維護(hù),按照這樣的設(shè)計(jì)過(guò)程,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的不同階段可形成數(shù)據(jù)庫(kù)的各級(jí)模式[3]。數(shù)據(jù)持久化層涉及到數(shù)據(jù)庫(kù)本身、存儲(chǔ)過(guò)程以及提供數(shù)據(jù)庫(kù)接口的組件;業(yè)務(wù)邏輯層指的是封裝了應(yīng)用程序商務(wù)邏輯的組件;而表示層指的是用戶(hù)瀏覽器頁(yè)面,如圖52所示。Windows DNA提供了一種開(kāi)發(fā)三層結(jié)構(gòu)Web應(yīng)用程序的通用方法是一個(gè)電子商務(wù)開(kāi)發(fā)的良好環(huán)境。為了實(shí)現(xiàn)系統(tǒng)的總體功能,提高系統(tǒng)的各項(xiàng)指標(biāo),總體結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)是將整個(gè)系統(tǒng)合理的劃分為各個(gè)功能模塊,正確地處理模塊之間與模塊內(nèi)部的聯(lián)系以及它們之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系,定義整個(gè)模塊的內(nèi)部結(jié)構(gòu)。這一階段的主要任務(wù)就是從管理信息系統(tǒng)的總體目標(biāo)出發(fā),根據(jù)系統(tǒng)分析階段對(duì)系統(tǒng)的邏輯功能的要求,并考慮到經(jīng)濟(jì)、技術(shù)和運(yùn)行環(huán)境等方面的條件,確定系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)各組成部分的技術(shù)方案,合理選擇計(jì)算機(jī)和通信的軟、硬件設(shè)備,提出系統(tǒng)的實(shí)施計(jì)劃,確保系統(tǒng)總體目標(biāo)的實(shí)現(xiàn)[10]。5 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是在系統(tǒng)分析的基礎(chǔ)上由抽象到具體的過(guò)程,同時(shí),還應(yīng)考慮到系統(tǒng)所實(shí)現(xiàn)的內(nèi)外環(huán)境和主客觀條件。在服務(wù)器端,JSP引擎解釋JSP標(biāo)記和小腳本,生成所請(qǐng)求的內(nèi)容,例如通過(guò)訪(fǎng)問(wèn)JavaBeans組件,使用JDBC/JDO技術(shù)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),并且將結(jié)果以HTML或XML頁(yè)面的形式發(fā)送回瀏覽器。JSP(Java Server Pages)是Oracle公司的子公司Sun公司推出的新一代客戶(hù)端開(kāi)發(fā)語(yǔ)言,它最大的特點(diǎn)是將Web程序設(shè)計(jì)的邏輯處理和內(nèi)容與外觀設(shè)計(jì)隔開(kāi),即可以在Html文檔里面用Java語(yǔ)言寫(xiě)業(yè)務(wù)邏輯的代碼。 Web平臺(tái)的動(dòng)態(tài)技術(shù)分析目前業(yè)界流行的動(dòng)態(tài)頁(yè)面制作技術(shù)有:PHP、JSP、CGI等等。用戶(hù)單擊該頁(yè)面上的一個(gè)按鈕或鏈接就產(chǎn)生一個(gè)請(qǐng)求,該請(qǐng)求通過(guò)HTTP傳遞到Web服務(wù)器上,Web服務(wù)器將頁(yè)面中的請(qǐng)求及有關(guān)數(shù)據(jù)取出來(lái)傳給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器調(diào)用相關(guān)的商務(wù)邏輯,實(shí)際上是一個(gè)Web應(yīng)用程序,進(jìn)行相應(yīng)的處理,從外部數(shù)據(jù)庫(kù)服務(wù)器存取數(shù)據(jù),然后將結(jié)果傳回Web服務(wù)器,Web服務(wù)器再將數(shù)據(jù)結(jié)果轉(zhuǎn)換為頁(yè)面的形式傳給瀏覽器,于是在客戶(hù)端產(chǎn)生了新的頁(yè)面。家教網(wǎng)系統(tǒng)的應(yīng)用可以看作一個(gè)客戶(hù)與家教站點(diǎn)之間的一系列交互過(guò)程??蛻?hù)端(瀏覽器)Web服務(wù)器應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器 HTTP請(qǐng)求 事務(wù)邏輯請(qǐng)求 反饋?lái)?yè)面 結(jié)果圖43 Web平臺(tái)的三層分布式體系結(jié)構(gòu) Threetier distributed architecture of the web platform三層分布式體系結(jié)構(gòu)的第一層是客戶(hù)端表示層、客戶(hù)層 僅僅是整個(gè)應(yīng)用系統(tǒng)的圖形界面表示;處于第二層的應(yīng)用服務(wù)層,有一臺(tái)或多臺(tái)服務(wù)器組成,其中Web服務(wù)器主要負(fù)責(zé)對(duì)客戶(hù)端應(yīng)用程序的集中管理,應(yīng)用服務(wù)器(Application Server)主要負(fù)責(zé)應(yīng)用邏輯的集中管理,即事務(wù)處理。確保網(wǎng)絡(luò)服務(wù)器正常運(yùn)行,在用戶(hù)操作頻繁的時(shí)間段避免或減少相關(guān)服務(wù)器的部署或重啟等操作。代碼層上利用Java語(yǔ)言提供的異常處理機(jī)制來(lái)處理響應(yīng)操作中出現(xiàn)的錯(cuò)誤,并輸出錯(cuò)誤提示信息。表41業(yè)務(wù)流程圖的符號(hào)及說(shuō)明:Table 41 The mark and explanation of Service Flow Diagram符號(hào)說(shuō)明數(shù)據(jù)處理表示輸入/輸出表示處理表示業(yè)務(wù)流向表示條件判斷開(kāi)始查看學(xué)生信息留言板新聞查看教師信息注冊(cè)找回密碼是系統(tǒng)首頁(yè)訂單結(jié)束新聞更 新用戶(hù)管 理管理員?是否否否否登陸圖42 業(yè)務(wù)流程圖Fig 42 Service Flow Diagram 出錯(cuò)輸出信息當(dāng)普通用戶(hù)或者管理人員操作本系統(tǒng)時(shí),如果出現(xiàn)了500,404等系統(tǒng)錯(cuò)誤,將會(huì)智能地跳轉(zhuǎn)到相應(yīng)的出錯(cuò)頁(yè)面,給用戶(hù)提示詳細(xì)的出錯(cuò)信息,并提示用戶(hù)返回到主頁(yè)或前一頁(yè)的具體操作信息。 業(yè)務(wù)流程圖是一種表明系統(tǒng)內(nèi)人員之間業(yè)務(wù)關(guān)系,作業(yè)順序和管理信息流動(dòng)的流程圖。弄清家教網(wǎng)是如何處理信息的,就必須了解組織的業(yè)務(wù)流程。4 系統(tǒng)分析對(duì)現(xiàn)行的業(yè)務(wù)進(jìn)行詳細(xì)調(diào)查研究是了解系統(tǒng)需求和進(jìn)行系統(tǒng)分析與設(shè)計(jì)的重要基礎(chǔ)工作,因此要對(duì)家教網(wǎng)系統(tǒng)的各項(xiàng)管理工作進(jìn)行全面、細(xì)致、充分的調(diào)查研究。(4)留言板管理:用戶(hù)或游客可以在留言板進(jìn)行留言,管理員可以對(duì)留言板進(jìn)行查看刪除等一系列操作。(2)新聞管理:管理員可以對(duì)新聞進(jìn)行管理,上傳新聞,刪除新聞等操作。家教網(wǎng)系統(tǒng)業(yè)業(yè)務(wù)管理留留言板管理人資料管理新新聞管理用客戶(hù)管理圖37 組織結(jié)構(gòu)功能層次圖 Organizational structure featurelevel map各模塊功能情況的說(shuō)明如下:(1)用戶(hù)管理:用戶(hù)管理包括教師和學(xué)生可以進(jìn)行用戶(hù)注冊(cè)同時(shí)可以對(duì)自己的用戶(hù)信息進(jìn)行管理,如密碼,另一部分是管理員對(duì)教師和學(xué)生進(jìn)行管理,如果發(fā)現(xiàn)有違規(guī)操作將直接刪除用戶(hù)。4訂單預(yù)定只要注冊(cè)的用戶(hù)教師在登錄后并且在所在城市的相應(yīng)教師或?qū)W生詳細(xì)信息頁(yè)面內(nèi)可以進(jìn)行訂單的預(yù)定,預(yù)定后相應(yīng)的雙方可以查看到訂單。2查找信息包括管理員,教師,學(xué)生,游客在內(nèi)的所有人都可以查找學(xué)生及教師的信息,并且可以查看這些用戶(hù)的信息除了電話(huà)號(hào)碼之外。后置條件:用戶(hù)發(fā)布成功,新公告信息加入新聞列表中。主事件流:點(diǎn)擊留言板,輸入標(biāo)題和內(nèi)容進(jìn)行留言。后置條件:留言?xún)?nèi)容顯示給管理員。前置條件:本用戶(hù)是管理員,且已經(jīng)登錄成功。后置條件:管理員刪除成功,留言從數(shù)據(jù)庫(kù)中刪除。前置條件:本用戶(hù)是管理員,且已經(jīng)登錄成功。后置條件:管理員修改成功,新公告信息加入新聞列表中或被刪除。前置條件:一定是管理員,且登錄。主事件流:用戶(hù)點(diǎn)擊相應(yīng)的標(biāo)題,系統(tǒng)調(diào)用數(shù)據(jù)庫(kù)顯示查詢(xún)結(jié)果。簡(jiǎn)要說(shuō)明:用戶(hù)通過(guò)公告標(biāo)題關(guān)鍵字查詢(xún)已發(fā)布的公告信息。主事件流:管理員輸入公告標(biāo)題和內(nèi)容并提交;系統(tǒng)驗(yàn)證輸入的公告信息;管理員發(fā)布信息成功,系統(tǒng)顯示成功頁(yè)面。(4)新聞公告信息管理用例圖圖34 新聞公告信息管理用例圖 The use case diagram of the news management簡(jiǎn)要說(shuō)明:管理員發(fā)布新聞公告信息通知所有用戶(hù)。輔助事件流:所要查詢(xún)的用戶(hù)的單位錯(cuò)誤,系統(tǒng)顯示不出結(jié)果。前置條件:該用戶(hù)已經(jīng)注冊(cè)。后置條件:用戶(hù)查看到用戶(hù)具體信息。前置條件:任何登錄頁(yè)面的人。后置條件:用戶(hù)修改成功,數(shù)據(jù)庫(kù)已更新。主事件流:用戶(hù)輸入除用戶(hù)名、密碼、姓名和權(quán)限之外的新的個(gè)人信息;系統(tǒng)驗(yàn)證輸入的個(gè)人信息;用戶(hù)修改信息成功,系統(tǒng)顯示成功頁(yè)面。后置條件:用戶(hù)添加成功,數(shù)據(jù)庫(kù)已更新。主事件流:用戶(hù)輸入除用戶(hù)名、密碼、姓名和權(quán)限之外的個(gè)人信息;系統(tǒng)驗(yàn)證輸入的個(gè)人信息;用戶(hù)添加信息成功,系統(tǒng)顯示成功頁(yè)面。簡(jiǎn)要說(shuō)明:用戶(hù)登錄后自己添加除用戶(hù)名、密碼、姓名和權(quán)限之外的個(gè)人信息。輔助事件流:用戶(hù)名、姓名、密碼為空時(shí),系統(tǒng)提示不能為空;輸入密碼不一致時(shí),系統(tǒng)提示輸入不正確。前置條件:管理員已注冊(cè),用戶(hù)只能為教師和學(xué)生。后置條件:用戶(hù)登錄成功,進(jìn)入操作界面。主事件流:用戶(hù)輸入用戶(hù)名、密碼和權(quán)限;系統(tǒng)驗(yàn)證用戶(hù)名、密碼和權(quán)限;用戶(hù)登錄成功,系統(tǒng)顯示主頁(yè)面。圖31 系統(tǒng)用例圖 The use case diagram of the system(2)用戶(hù)登錄用例圖圖32 登錄用例圖 The use case diagram of the login簡(jiǎn)要說(shuō)明:用戶(hù)登錄通過(guò)驗(yàn)證用戶(hù)名、密碼和權(quán)限來(lái)進(jìn)入不同的管理界面。 用例圖及其用例規(guī)約(1)系統(tǒng)用例圖上面的系統(tǒng)用例圖中,用戶(hù)是用例的發(fā)起者,而數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)則可以看成一個(gè)用例的接收者,故可以把數(shù)據(jù)庫(kù)看成角色。(4)參與者:用戶(hù)。(3)參與者:學(xué)生。(2)參與者:教師。