freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

武漢大學(xué)工程碩士專業(yè)學(xué)位論文模板(參考版)

2024-08-15 02:05本頁面
  

【正文】 ? IOnlineStatService和OnlineStatService提供在線統(tǒng)計服務(wù)。⑩ IGuestBookService和GuestBookService提供用戶留言服務(wù)。⑦ IEliteService和EliteService提供指定精華文章相關(guān)服務(wù)。④ IAdvService和AdvService提供廣告管理相關(guān)服務(wù)。BoardsService主要負責(zé)提供二級版區(qū)的管理和權(quán)限控制等服務(wù)。BoardService類實現(xiàn)了這些方法,借助Spring的IoC注入所依賴的JavaBean BoardDAO,調(diào)用此JavaBean相應(yīng)的方法實現(xiàn)所需的服務(wù)。 業(yè)務(wù)邏輯處理類的實現(xiàn)依據(jù)本系統(tǒng)涉及的業(yè)務(wù)對象,相應(yīng)的業(yè)務(wù)邏輯處理類及其接口為:① IBoardService接口和其實現(xiàn)BoardService類IBoardService接口定義了addBoard()、updateBoard()、findAllBoard()、findBoardById()、removeBoard()、getNextOrders()五個方法。本系統(tǒng)涉及到的業(yè)務(wù)邏輯類是由系統(tǒng)的業(yè)務(wù)對象決定的。這也是使用Hibernate實現(xiàn)持久層得優(yōu)勢所在。 (boards)。BoardsDAO需要實現(xiàn)IBoardsDAO的四個方法:findOrderByNum()、removeBoards()、getNextOrders()和getPostSumNum()。接下來我們以BoardsDAO的實現(xiàn)來說明如何實現(xiàn)一個具體業(yè)務(wù)對象DAO。 業(yè)務(wù)對象DAO封裝了Hibernate的實現(xiàn)細節(jié),提供訪問接口,供業(yè)務(wù)層調(diào)用。n List find(String queryString, Object param),根據(jù)帶一個參數(shù)的查詢語句查詢數(shù)據(jù)庫并返回查詢結(jié)果所包含的業(yè)務(wù)對象集合。u delete()方法從數(shù)據(jù)庫刪除一條對應(yīng)于一個業(yè)務(wù)對象的記錄u Find()方法根據(jù)查詢語句查詢數(shù)據(jù)庫并返回查詢結(jié)果所包含的業(yè)務(wù)對象集合。根據(jù)需要,id可以是Integer型對象、Long型對象或String,所以有三種實現(xiàn)方式,分別是getByPk(Class class,Integer id),getByPk(Class class,Long id)和getByPk(Class class,Long String)。u 根據(jù)主鍵查詢唯一數(shù)據(jù)對象,用getByPk()方法實現(xiàn)。HibernateTemplate的save(). DataAccessException異常。u 向數(shù)據(jù)庫中添加記錄是最常見的操作之一。u getQuery()方法提供給調(diào)用者一個Query對象,它需要調(diào)用者傳入一個SQL語句的字符串作為參數(shù)。這個方法是通過SessionFactoryUtils 類來獲取Session實例的。下面依次分析了openSession() ,getQuery(),add(),getByPk(),update(), delete(),find()等方法的實現(xiàn)。HibernateTemplate能為我們管理Session的創(chuàng)建、事務(wù)的啟動、提交與回滾。} DAO數(shù)據(jù)訪問實現(xiàn)為了實現(xiàn)代碼的最大復(fù)用和便于以后功能的變更,業(yè)務(wù)對象DAO都繼承自BaseDAO。 public short getNextOrders(Board board)。IBoards接口定義如下:public interface IBoardsDAO extends IBaseDao{ public List findOrderByNum()。 }所有業(yè)務(wù)對象DAO類的接口類都繼承上面定義的接口超類IBaseDao類。 public List find(String queryString, Object param) throws DaoException。 public void deleteAll(Collection entities) throws DaoException。 public Object update(Object entity)。 public Object getByPk(Class clazz,String id)。 public Object getByPk(Class clazz,Integer id)。public interface IBaseDao { public Session openSession()。基于以下幾點考慮,我們創(chuàng)建了每一個對象DAO類的接口類IDAO:l 為了以后功能擴展l 降低系統(tǒng)實現(xiàn)之間的相互依賴關(guān)系l 業(yè)務(wù)層用Spring框架的設(shè)值注入方式綁定business service object和 DAO Object, Business Object中的Setter方法接受的是接口,這樣便于很松散的定義對象實現(xiàn),然后注入??梢圆捎肑ava屬性文件(采用鍵值對的形式)。在XML配置文件中分別用屬性onetomany和manytoone表示這種關(guān)聯(lián)關(guān)系。在應(yīng)用運行時,Hibernate將根據(jù)這個映射文件來生成各種SQL語句,實現(xiàn)數(shù)據(jù)的訪問。在接下來的三個小節(jié),主要分析了如何創(chuàng)建Hibernate框架為我們的應(yīng)用服務(wù)。 } public String getBoardName () { return boardName。 private String boardName。業(yè)務(wù)對象類其實就是普通的java類,在其內(nèi)部定義一些和業(yè)務(wù)相關(guān)的私有屬性字段,并對外提供公有的相應(yīng)屬性的set和get方法設(shè)置或訪問其屬性值。業(yè)務(wù)對象可以在各層之間移動并承擔(dān)數(shù)據(jù)通訊的載體。本章主要探討如何引入Struts、Hibernate和Spring框架技術(shù)分別實現(xiàn)表示層、業(yè)務(wù)層、持久層,并最終完成ICPS系統(tǒng)的實現(xiàn)。例如,注冊用戶具有文章瀏覽、發(fā)表、回復(fù)的權(quán)限,那么他就能使用ICPS系統(tǒng)的瀏覽、發(fā)表、回復(fù)的功能。聯(lián)系各個模塊的主線是使用者的權(quán)限,用戶能夠使用系統(tǒng)的哪些功能是由用戶權(quán)限決定的。ICPS系統(tǒng)的用例圖如圖54所示。系統(tǒng)的后臺管理主要由管理模塊實現(xiàn),系統(tǒng)設(shè)置模塊用來設(shè)置ICPS系統(tǒng)參數(shù);版塊管理模塊用來創(chuàng)建、修改、刪除版塊;用戶管理模塊用來添加、刪除和設(shè)置用戶權(quán)限。用戶注冊、用戶登錄、修改個人注冊信息組合成注冊登錄模塊;用戶瀏覽版塊、瀏覽主題文章列表、查看文章組合成瀏覽模塊;用戶發(fā)表文章、回復(fù)、編輯自己發(fā)表的文章組合成文章發(fā)表及回復(fù)模塊;管理員編輯文章、刪除文章、轉(zhuǎn)移文章、置頂文章、指定精華文章組合成文章管理模塊。表54 ICPS_VOTEITEM字段名類型(寬度) 關(guān)鍵字 是否非空 字段含義IDbigint(13)Y Y唯一標(biāo)識符VoteIDbigint(13) Y投票IDItem varchar(100) Y項目名稱ItemValueint(11) Y項目投票數(shù) 模塊設(shè)計,ICPS系統(tǒng)功能分為用戶使用的基本功能和管理員對系統(tǒng)進行管理的功能兩類,因此模塊設(shè)計也分為兩大類。表52 ICPS_ BOARDS字段名類型(寬度) 關(guān)鍵字 是否非空 字段含義IDint(11) Y Y唯一標(biāo)識符BoardIDint(11) Y一級版區(qū)IDBoardsNamevarchar(30) Y版區(qū)名BoardsENamevarchar(20) Y版區(qū)英文名MainMastervarchar(20) 版主AssiMastervarchar(110) 副版主HideMastervarchar(65) 隱身版主Explainsvarchar(250) 版區(qū)說明Bulletintext 版區(qū)公告UseStattinyint(1) Y使用狀態(tài)Orderstinyint(4) Y序MainPostNumint(11) Y主文章數(shù)PostNumint(11) Y文章總數(shù)Picvarchar(255) 圖片文件名LastPostTitlevarchar(100) 最后文章主題LastPostIDbigint(13) 最后文章IDLastPostUservarchar(20) 最后發(fā)文章用戶名LastPostUserIDbigint(13) 最后發(fā)文章用戶IDAttrib1tinyint(1) Y版區(qū)屬性1Attrib2tinyint(2) Y版區(qū)屬性2Attrib3tinyint(3) Y版區(qū)屬性3Attrib4tinyint(4) Y版區(qū)屬性4UserCanIntext Y可以訪問的用戶,以,分割3) 投票表(ICPS_ VOTE)投票表用來存放投票的標(biāo)題及投票截止日期。1) 一級版區(qū)表(ICPS_BOARD) 本系統(tǒng)的信息是按照版區(qū)來分類組織的。結(jié)合本系統(tǒng)需求,根據(jù)上述問題,與系統(tǒng)相關(guān)的主要的數(shù)據(jù)庫表有11個(這只是部分表),其主要字段及其關(guān)系如圖52所示。圖51 系統(tǒng)架構(gòu)層次圖 數(shù)據(jù)庫設(shè)計ICPS系統(tǒng)開發(fā)的總的任務(wù)是方便用戶進行信息交流。使得一個應(yīng)用領(lǐng)域的實現(xiàn)過程中,最小單元達到最大復(fù)用,這也是我們將ICPS系統(tǒng)進行上述分層的原因之一。將系統(tǒng)進行如上的分層,從理論上可以讓其承擔(dān)各自職責(zé),表示層提供友好的用戶交互、業(yè)務(wù)層處理具體問題領(lǐng)域邏輯、持久層完成與數(shù)據(jù)庫讀取存儲、域模型承擔(dān)數(shù)據(jù)傳輸?shù)妮d體。實際上域?qū)ο笠彩且粋€完完全全的業(yè)務(wù)對象,如Board對象,F(xiàn)riend對象。l 域模塊層:該層應(yīng)該說是ORM思想的產(chǎn)物,ORM用對象關(guān)聯(lián)數(shù)據(jù)表,允許數(shù)據(jù)表中數(shù)據(jù)放入對象,也允許對象中數(shù)據(jù)更新到數(shù)據(jù)表,我們將這些對象的集合歸為一個專門的層次即Domain Layer。Hibernate框架為java提供了對象-關(guān)系持久化(objecttorelational persistence)機制和查詢服務(wù)。所以Spring主要在這一層負責(zé)處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)驗證;管理事務(wù);管理業(yè)務(wù)層對象之間的依賴;從表示層中提供一個上下文(context)給業(yè)務(wù)層獲得業(yè)務(wù)服務(wù)(business services );管理從業(yè)務(wù)邏輯到持久層的實現(xiàn)。通過Spring的IOC模式來裝配業(yè)務(wù)組件,如DAO對象,使系統(tǒng)更具擴展性。Struts主要在這一層負責(zé)為用戶管理請求和響應(yīng);提供ActionFrom來封裝與用戶互動的數(shù)據(jù)元素;提供控制器(controller)代理調(diào)用業(yè)務(wù)邏輯;處理從其他層拋出的Struts Action異常;l 業(yè)務(wù)層:具體的業(yè)務(wù)邏輯通常導(dǎo)致代碼的高度耦合,因此我們將業(yè)務(wù)邏輯分為單獨的一層,其目的也是希望通過該層,來降低它與系統(tǒng)其他部分的耦合度。它接受用戶的輸入,將數(shù)據(jù)傳遞給業(yè)務(wù)層,并將業(yè)務(wù)層返回的處理結(jié)果以DHTML的形式呈現(xiàn)給用戶。我們采用流行的MVC設(shè)計模式,整合Struts、Spring、Hibernate框架,把整個系統(tǒng)分為四層:表示層 ( Presentation Layer)、業(yè)務(wù)層(Business Layer)、持久層 (Persistence Layer )、域模塊層(Domain Model Layer ),并用Struts實現(xiàn)表現(xiàn)層, 用Spring實現(xiàn)業(yè)務(wù)層, 用Hibernate實現(xiàn)數(shù)據(jù)持久層??晒芾硇灾傅氖枪芾硐到y(tǒng)的難易程度??芍赜眯灾傅氖菓?yīng)用程序代碼沒有冗余,同一個應(yīng)用程序能滿足多種需求。層數(shù)越多,就可以在每個層中提供擴展點,不會打破應(yīng)用的整體框架??蓴U展性指的是在現(xiàn)有系統(tǒng)中增加新功能的難易程度。層數(shù)越多,可維護性也會不斷提高,因為修改軟件的某一層的實現(xiàn),不會影響其他的層。② 提高了軟件的可維護性。軟件分層的優(yōu)點,主要表現(xiàn)在以下幾個方面:① 提高軟件的伸縮性。③ 每個層對上層公開API,但具體的實現(xiàn)細節(jié)對外透明。軟件的層必須符合以下特征:① 每個層由一組相關(guān)的類或組件構(gòu)成,共同完成特定的功能。l 設(shè)置參數(shù):提供一些初始化信息的設(shè)置功能 框架設(shè)計 接下來我們所要做的就是對整個系統(tǒng)進行邏輯分層,已便于系統(tǒng)的開發(fā)、維護以及后續(xù)新的功能的擴充。l 指定精華文章:如果版主和ICPS系統(tǒng)管理員認為某篇文章的內(nèi)容非常好,可以打上標(biāo)記,推薦給瀏覽用戶。l 刪除文章:提供給版主和ICPS系統(tǒng)管理員刪除不符合規(guī)則的文章l 轉(zhuǎn)移文章:提供給發(fā)表該文章的會員、版主和ICPS系統(tǒng)管理員把文章轉(zhuǎn)移到別的版區(qū)。l 編輯文章:提供給發(fā)表文章或回復(fù)的會員修改更新自己發(fā)表的文章內(nèi)容。基于上述分析,本系統(tǒng)需要完成以下具體任務(wù):l 會員注冊:提供新會員注冊功能,包括提供錄入信息的界面,檢查注冊信息的有效性,并將注冊會員信息保存在在對應(yīng)數(shù)據(jù)庫的表中。版主:系統(tǒng)除了向本類用戶提供注冊用戶所需的功能外,還應(yīng)該提供對(所管版區(qū))文章的刪除、編輯、轉(zhuǎn)移文章、置頂文章、指定精華文章、審核注冊用戶發(fā)表的文章、鎖定主題及回復(fù)。注冊用戶:系統(tǒng)除了向本類用戶提供未注冊用戶所需的功能外,還應(yīng)提供發(fā)表文章、編輯文章(自己發(fā)表的)、回復(fù)文章以及修改個人注冊資料功能。由上述分析,本系統(tǒng)有四種類型的用戶角色:未注冊用戶、注冊用戶、版主、ICPS系統(tǒng)管理員。對于開發(fā)一個ICPS系統(tǒng),首先需要確定它能提供那些功能。 系統(tǒng)需求分析需求分析是指,需
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1