摘要:高校檔案管理是高校行政管理的重要組成部分,高校檔案管理系統(tǒng)是高校進(jìn)行數(shù)字化校園的一個(gè)重要子系統(tǒng),為了有效的適應(yīng)需求的變更,必須以分層體系進(jìn)行設(shè)計(jì)。在分層體系架構(gòu)中,通常會(huì)設(shè)計(jì)DAO層完成數(shù)據(jù)的持久化操作,合理的設(shè)計(jì)DAO可以提高項(xiàng)目的研發(fā)效率。
關(guān)鍵詞:高校檔案管理;持久化;數(shù)據(jù)訪問對(duì)象;分層體系
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 24-0197-02
隨著高校信息化的發(fā)展,高校各個(gè)管理工作都應(yīng)該通過計(jì)算機(jī)進(jìn)行管理,這是提高管理效率的主要手段,高校檔案管理是高校行政工作的重要組成部分。每個(gè)部門每年都有大量的檔案文件進(jìn)行歸檔,使用傳統(tǒng)的管理方式帶來的問題是沒有辦法相對(duì)快速的查詢歷史檔案,所以高校檔案管理系統(tǒng)的實(shí)現(xiàn)是高校信息化的一個(gè)重要組成部分。對(duì)于高校檔案管理而言,需求會(huì)隨著管理的方式而發(fā)生改變,為了能夠靈活的使用各種需求變更,必須以分層體系進(jìn)行架構(gòu)設(shè)計(jì)。在分層體系架構(gòu)中通常會(huì)設(shè)計(jì)DAO(DataAccessObject)層完成數(shù)據(jù)的持久化操作。
1 高校檔案管理分析
高校檔案是高校中部門和個(gè)人在工作中直接形成的具有保存價(jià)值的文字、圖表、音像及其他各種形式和載體的歷史記錄。目前,許多高校檔案管理工作存在數(shù)量多、保管條件差、查找利用率低、管理人員知識(shí)單一等問題。解決這些問題的最好辦法是實(shí)現(xiàn)檔案管理的信息化。高校檔案管理系統(tǒng)中最為重要的功能模塊是檔案的存檔和快速檢索檔案,高校檔案還必須可以靈活的根據(jù)年份,名稱,部門等信息進(jìn)行快速的檢索。為了讓檔案管理人員可以更加靈活的獲取檔案信息,所以檔案管理系統(tǒng)必須以B/S的架構(gòu)完成開發(fā)。
2 分層體系架構(gòu)設(shè)計(jì)
對(duì)于B/S架構(gòu)的信息系統(tǒng),為了提高系統(tǒng)的靈活性,通常采用分層體系架構(gòu),目前四層體系架構(gòu)是如果系統(tǒng)設(shè)計(jì)的主要分層體系,如圖2.1所示,表示層提供用戶輸入和輸出接口,在基于MVC體系架構(gòu)中,用戶輸入的數(shù)據(jù)首先會(huì)提交給控制器,控制器會(huì)調(diào)用業(yè)務(wù)層的服務(wù)對(duì)象進(jìn)行系統(tǒng)的業(yè)務(wù)邏輯處理,之后調(diào)用DAO層完成業(yè)務(wù)對(duì)象的持久化操作,業(yè)務(wù)對(duì)象通常會(huì)持久化到數(shù)據(jù)層的關(guān)系數(shù)據(jù)庫中。通過分層設(shè)計(jì),當(dāng)需要調(diào)整業(yè)務(wù)對(duì)象的持久化模塊時(shí),不會(huì)影響到其他層的數(shù)據(jù),可以很大程度上提高項(xiàng)目的靈活性。
圖2.1
3 高校檔案管理系統(tǒng)面向?qū)ο蠓治?/p>
目前的軟件開發(fā)都是采用面向?qū)ο蟮姆绞竭M(jìn)行設(shè)計(jì),在基于面向?qū)ο蟮姆绞絹碓O(shè)計(jì)高校檔案管理的步驟是:首先確定業(yè)務(wù)對(duì)象和對(duì)象中的屬性,之后確定業(yè)務(wù)對(duì)象之間的關(guān)系。確定業(yè)務(wù)對(duì)象之后就等于確定了關(guān)系表,業(yè)務(wù)對(duì)象各自的屬性就是關(guān)系表中的字段,業(yè)務(wù)對(duì)象之間的關(guān)系就是關(guān)系表中的外鍵映射關(guān)系。高校檔案管理的類圖如圖3.1所示:檔案對(duì)象是項(xiàng)目中最為重要對(duì)象,它和學(xué)校的教師與部門都是多對(duì)一的關(guān)系,學(xué)校的部門和教師對(duì)象是一對(duì)多的關(guān)系,為了方便進(jìn)行權(quán)限控制,必須為學(xué)校教師確定一個(gè)用戶對(duì)象,項(xiàng)目中還必須通過數(shù)據(jù)字典對(duì)象完成一些編碼的設(shè)計(jì)。
圖3.1 高校檔案管理系統(tǒng)類圖
4 高校檔案管理DAO設(shè)計(jì)
4.1 DAO設(shè)計(jì)模式分析。DAO是數(shù)據(jù)訪問對(duì)象的簡(jiǎn)稱,在基于面向?qū)ο蟮能浖?xiàng)目中,通常需要將業(yè)務(wù)對(duì)象持久化到數(shù)據(jù)庫中,目前主流的數(shù)據(jù)庫都是關(guān)系型數(shù)據(jù)庫,為了將業(yè)務(wù)對(duì)象存儲(chǔ)到關(guān)系數(shù)據(jù)庫中必須完成ER(實(shí)體關(guān)系)映射,在分層體系中,通常對(duì)創(chuàng)建一個(gè)獨(dú)立的層來完成ER映射。DAO層就是這個(gè)獨(dú)立的層,DAO層通過數(shù)據(jù)訪問對(duì)象完成業(yè)務(wù)對(duì)象到關(guān)系數(shù)據(jù)庫的轉(zhuǎn)換,正常情況需要為每個(gè)業(yè)務(wù)對(duì)象都設(shè)計(jì)DAO對(duì)象來完成映射。
DAO對(duì)象中存儲(chǔ)了各自的增刪改查方法,為了提高DAO的靈活性,都需要為每個(gè)DAO對(duì)象設(shè)計(jì)訪問接口,并且創(chuàng)建DAO工廠來完成DAO對(duì)象的創(chuàng)建。對(duì)于DAO而言僅僅只是進(jìn)行對(duì)象的持久化操作,所以在DAO對(duì)象中不應(yīng)該進(jìn)行多余的業(yè)務(wù)控制操作(如權(quán)限控制,日志管理等),這樣業(yè)務(wù)邏輯操作應(yīng)該在業(yè)務(wù)層進(jìn)行處理。
4.2 高校檔案管理系統(tǒng)DAO設(shè)計(jì)與實(shí)現(xiàn)。高校檔案管理系統(tǒng)的DAO設(shè)計(jì)同樣應(yīng)該遵循DAO的設(shè)計(jì)原則,首先為每一個(gè)業(yè)務(wù)對(duì)象創(chuàng)建DAO接口,檔案對(duì)象的DAO接口和實(shí)現(xiàn)類的關(guān)系圖如4.1所示,首先創(chuàng)建一個(gè)ICollegeFileDAO的接口,這個(gè)接口中創(chuàng)建相應(yīng)的增刪改查方法,對(duì)于增加和修改方法而言,需要傳入CollegeFile對(duì)象作為參數(shù);刪除方法直接可以通過id完成刪除;load方法用來根據(jù)id從數(shù)據(jù)庫中加載一個(gè)CollegeFile對(duì)象,find方法用來根據(jù)某個(gè)指定的條件從數(shù)據(jù)庫中獲取一組檔案對(duì)象,圖中僅僅給出了CollegeFile對(duì)象的DAO模型,對(duì)于Teacher,Department,Dictionary,User對(duì)象都應(yīng)該創(chuàng)建自己獨(dú)立的DAO訪問接口和DAO的實(shí)現(xiàn)類,DAO中的方法基本都是一致的,都是基礎(chǔ)的增刪改查方法。
圖4.1 DAO設(shè)計(jì)模型
DAO的具體實(shí)現(xiàn)有多種方式,在基于J2EE的架構(gòu)中通常使用JDBC完成和數(shù)據(jù)庫的操作,也可以利用目前開源的MyBatis和Hibernate等持久化層框架實(shí)現(xiàn)。
4.3 高校檔案管理系統(tǒng)DAO工廠設(shè)計(jì)。DAO層存在的意義就是為業(yè)務(wù)邏輯層服務(wù),如果在業(yè)務(wù)邏輯層直接創(chuàng)建DAO對(duì)象,帶來的問題是:業(yè)務(wù)邏輯層將會(huì)依賴于某個(gè)具體的實(shí)現(xiàn)類,此時(shí)如果將來DAO的實(shí)現(xiàn)類有所調(diào)整之后,整個(gè)業(yè)務(wù)邏輯層的代碼將會(huì)被重寫,所以需要通過DAO工廠來創(chuàng)建具體的DAO實(shí)現(xiàn)類。同樣DAO工廠的設(shè)計(jì)首先要?jiǎng)?chuàng)建工廠接口,DAO工廠接口如圖4.2所示,在接口工廠中為每個(gè)DAO對(duì)象創(chuàng)建getXX方法,通過這個(gè)方法來獲取具體的DAO實(shí)現(xiàn)類,可以將某個(gè)具體的實(shí)現(xiàn)類存儲(chǔ)到項(xiàng)目的配置文件中,之后利用java的反射
機(jī)制來獲取。此時(shí)業(yè)務(wù)邏輯層創(chuàng)建DAO對(duì)象僅僅只依賴于工廠,而沒有依賴于具體的實(shí)現(xiàn)類,可以很大程度上提高代碼的靈活性。
圖4.2 DAO工廠接口方法
4.4 高校檔案管理系統(tǒng)DAO層的BaseDao設(shè)計(jì)。DAO中的所有方法都具備一定的共通性,可以通過設(shè)計(jì)一個(gè)BaseDAO來完成最為基本的增刪改查操作,之后利用面向?qū)ο蟮睦^承特性,讓DAO的實(shí)現(xiàn)類繼承于BaseDAO可以很大程度上提高代碼的重用特性,在BaseDAO中就設(shè)計(jì)最為基礎(chǔ)add,delete,load,update和find方法,這些方法所對(duì)應(yīng)的對(duì)象利用Java的泛型特性進(jìn)行指定,這樣就可以靈活的實(shí)現(xiàn)DAO層的控制。
5 總結(jié)
高校檔案管理系統(tǒng)是高校實(shí)現(xiàn)信息化的重要業(yè)務(wù)系統(tǒng),分層體系可以為系統(tǒng)的研發(fā)提供足夠的靈活性,在基于面向?qū)ο蟮捏w系中,通常需要為業(yè)務(wù)對(duì)象創(chuàng)建獨(dú)立的DAO層完成ER映射。靈活的設(shè)計(jì)DAO層可以提高開發(fā)的效率和可擴(kuò)展性。
參考文獻(xiàn):
[1]劉秀敏,魏翠萍.面向?qū)ο蟪绦蛟O(shè)計(jì)的教學(xué)問題探討[J].河北廣播電視大學(xué)學(xué)報(bào),2009(02).
[2]孔浩,姜娜著.URP中基于POX的業(yè)務(wù)系統(tǒng)集成模型的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)春工程學(xué)院學(xué)報(bào),2012年第13卷2期103-105.
計(jì)算機(jī)光盤軟件與應(yīng)用2012年24期