熊瑛
摘要:為實(shí)現(xiàn)高校院系中圖書資源的共享,根據(jù)高校院系圖書管理的實(shí)際需求,本文給出了高校院系圖書管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的過程。本系統(tǒng)在ASP.NET的基礎(chǔ)上,通過對(duì)系統(tǒng)功能的分析與設(shè)計(jì),結(jié)合三層架構(gòu)[1]的設(shè)計(jì)思想,將系統(tǒng)分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和視圖層三層,并分層實(shí)現(xiàn),使系統(tǒng)易于維護(hù)和升級(jí),最終實(shí)現(xiàn)了角色管理、圖書基本信息管理、圖書借閱信息管理主要圖書管理功能。通過該系統(tǒng)的使用,提高了高校院系圖書資源的利用率,減輕了工作人員的負(fù)擔(dān),規(guī)范高校院系圖書管理工作的流程并提高了工作的服務(wù)質(zhì)量。
關(guān)鍵字:圖書管理;ASP.NET;三層架構(gòu);
(中圖分類號(hào)]G250.7 [文獻(xiàn)標(biāo)識(shí)碼]A
1 引言
高校院系中圖書資料豐富,但如何將這些豐富的圖書資料共享給教師和學(xué)生,使其在專業(yè)教學(xué)和學(xué)術(shù)科研中發(fā)揮應(yīng)有的作用卻成了一個(gè)問題[2]。為實(shí)現(xiàn)圖書資料的共享,方便教師和學(xué)生借閱,院系需要安排工作人員負(fù)責(zé)統(tǒng)計(jì)圖書借閱和歸還等相關(guān)信息,但是由于高校院系中人員配置有限,負(fù)責(zé)圖書資料管理的工作人員若采用傳統(tǒng)的文本和手工記錄的方式來對(duì)圖書資料的借閱和歸還等信息進(jìn)行管理,不僅工作量較大,而且容易出錯(cuò)。針對(duì)這一問題,設(shè)計(jì)一個(gè)用于高校院系中圖書資料管理的系統(tǒng)顯得十分必要,這也是本文提出的基于ASP.NET的高校院系圖書管理系統(tǒng)的意義所在。
2 系統(tǒng)功能分析與設(shè)計(jì)
系統(tǒng)分析作為系統(tǒng)設(shè)計(jì)的基礎(chǔ),在系統(tǒng)分析的基礎(chǔ)上,能夠?qū)⒏咝T合祱D書管理中所遇到的問題抽象為具體的需求 [3],作為后續(xù)系統(tǒng)實(shí)現(xiàn)的依據(jù)。
為實(shí)現(xiàn)對(duì)院系圖書的管理,需要完成對(duì)書籍、報(bào)刊、雜志等圖書資料的分類登記;能夠?qū)栝喓蜌w還等信息進(jìn)行記錄和查詢;為方便借閱,還要能夠?qū)D書進(jìn)行檢索查詢,獲取所查詢圖書的相關(guān)借閱信息;同時(shí),還需根據(jù)借閱人的身份信息分別對(duì)教師借書和學(xué)生借書進(jìn)行不同的設(shè)置,以及相關(guān)借書人員身份信息的管理和維護(hù)。
根據(jù)以上分析,高校院系圖書管理系統(tǒng)應(yīng)包括三個(gè)主要功能,即:角色管理功能、圖書基本信息管理功能、圖書借閱信息管理功能。其主要功能分析與說明如表1所示。
表1 高校院系圖書管理系統(tǒng)功能說明表
主要功能模塊
功能劃分
功能說明
角色管理
賬號(hào)管理
包括賬號(hào)的添加和刪除、密碼修改、賬號(hào)級(jí)別設(shè)置和各級(jí)別賬號(hào)訪問權(quán)限控制。
角色基本信息維護(hù)
負(fù)責(zé)角色基本信息的查詢、修改、刪除功能。
圖書基本信息管理
圖書入庫
負(fù)責(zé)將圖書資料按出版社類別劃分和圖書類別劃分錄入系統(tǒng)。
圖書出版社類別管理
添加、刪除、修改出版社類別名稱。
圖書類別管理
添加、刪除、修改圖書類別名稱。
圖書借閱信息管理
圖書借閱
登記借閱圖書的借閱人、借閱起止時(shí)間、借閱圖書編號(hào)等信息。
圖書歸還
負(fù)責(zé)圖書歸還記錄的登記和保存。
圖書借閱統(tǒng)計(jì)
根據(jù)借閱記錄以圖表的形式展示不同類別圖書一段時(shí)期內(nèi)借閱的次數(shù)。
超時(shí)處理
對(duì)于未按時(shí)間歸還的借閱者,管理員根據(jù)實(shí)際情況實(shí)行延時(shí)或懲罰處理。
圖書報(bào)失
登記丟失圖書的信息,借閱人按規(guī)定照價(jià)賠償。
3 軟件架構(gòu)設(shè)計(jì)
合理的軟件架構(gòu)設(shè)計(jì)是軟件開發(fā)的基礎(chǔ),本系統(tǒng)采用的是在ASP.NET技術(shù)的基礎(chǔ)上設(shè)計(jì)的三層架構(gòu),即:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、視圖層。各層分別負(fù)責(zé)相對(duì)獨(dú)立的功能,即使需求發(fā)生變化,也只用修改相應(yīng)層的實(shí)現(xiàn)代碼即可,這樣一來不僅提高了軟件開發(fā)的效率,同時(shí)增強(qiáng)系統(tǒng)的可維護(hù)性和擴(kuò)展性。
1) 數(shù)據(jù)訪問層:數(shù)據(jù)訪問層負(fù)責(zé)提供訪問數(shù)據(jù)庫的統(tǒng)一接口,訪問數(shù)據(jù)庫所進(jìn)行的查詢、添加、刪除、更新操作均通過調(diào)用統(tǒng)一的接口實(shí)現(xiàn)。
2) 業(yè)務(wù)邏輯層:業(yè)務(wù)邏輯層是整個(gè)系統(tǒng)的核心層[4],它處于數(shù)據(jù)訪問層之上,視圖層之下,系統(tǒng)對(duì)角色管理功能、圖書基本信息管理功能以及圖書借閱信息管理功能的實(shí)現(xiàn)都依賴于業(yè)務(wù)邏輯層的處理。一方面業(yè)務(wù)邏輯層負(fù)責(zé)對(duì)數(shù)據(jù)訪問層獲取到的原始數(shù)據(jù)進(jìn)行邏輯處理,將原始數(shù)據(jù)轉(zhuǎn)化為用戶可理解的數(shù)據(jù)傳遞給視圖層展示給用戶;同時(shí),業(yè)務(wù)邏輯層能夠接收用戶通過視圖層發(fā)送的請(qǐng)求,如修改密碼請(qǐng)求、歸還圖書請(qǐng)求等,在對(duì)請(qǐng)求進(jìn)行解析之后,將請(qǐng)求轉(zhuǎn)化為對(duì)數(shù)據(jù)訪問層具體功能的調(diào)用,交與數(shù)據(jù)訪問層完成數(shù)據(jù)庫相關(guān)操作,實(shí)現(xiàn)用戶請(qǐng)求。該層是連接數(shù)據(jù)訪問層與視圖層的橋梁。
3) 視圖層:視圖層一方面接收業(yè)務(wù)邏輯層的請(qǐng)求,從業(yè)務(wù)邏輯層中取得處理后的數(shù)據(jù),按照視圖層提供的頁面模板,生成WEB頁面呈現(xiàn)給用戶;另一方面,視圖層接收用戶通過頁面提交的表單數(shù)據(jù)或者是頁面訪問請(qǐng)求,視圖層將提交的數(shù)據(jù)或頁面訪問請(qǐng)求交給業(yè)務(wù)邏輯層處理。
4 系統(tǒng)中關(guān)鍵部分實(shí)現(xiàn)
1. 數(shù)據(jù)訪問層實(shí)現(xiàn)
數(shù)據(jù)訪問層創(chuàng)建DataBaseAccess類,DataBaseAccess類中包含string類型的數(shù)據(jù)庫連接字符串StrConnectionString成員變量和OleDbConnection類型的數(shù)據(jù)庫連接對(duì)象Connection成員變量,在DataBaseAccess類的無參構(gòu)造函數(shù)中實(shí)現(xiàn)StrConnectionString與Connection的初始化,關(guān)鍵實(shí)現(xiàn)代碼如下:
StrConnectionString = System.Configuration.ConfigurationManager.AppSettings["conString"].ToString();
Connection = new OleDbConnection(StrConnectionString);
連接數(shù)據(jù)庫的字符串在web.config文件中的
除此之外,DataBaseAccess類中提供了OpenConnection()和CloseConnection()方法用于管理數(shù)據(jù)庫的連接和關(guān)閉。
對(duì)于數(shù)據(jù)庫中的添加、刪除、修改操作通過RunSQLStringForUpdate方法實(shí)現(xiàn),該方法返回int類型的數(shù)值表示對(duì)數(shù)據(jù)庫的更新所影響的行數(shù),在調(diào)用時(shí)需要傳遞一個(gè)string類型的參數(shù),該參數(shù)值為需要執(zhí)行的SQL語句。
數(shù)據(jù)庫的查詢操作通過RunSQLStringWithSQLDataTable方法實(shí)現(xiàn),將查詢得到的數(shù)據(jù)結(jié)果存放在DataTable中返回給調(diào)用者,同時(shí),在調(diào)用時(shí)需要傳遞一個(gè)string類型的參數(shù),該參數(shù)值為查詢SQL語句。
2. 業(yè)務(wù)邏輯層實(shí)現(xiàn)
根據(jù)系統(tǒng)的功能設(shè)計(jì),業(yè)務(wù)邏輯層的實(shí)現(xiàn)可以抽象為以下三個(gè)功能的實(shí)現(xiàn):
1) 數(shù)據(jù)查詢功能實(shí)現(xiàn):通過DataBaseAccess類的實(shí)例化對(duì)象,利用實(shí)例化對(duì)象調(diào)用RunSQLStringWithSQLDataTable方法從數(shù)據(jù)庫中得到原始數(shù)據(jù),然后根據(jù)具體業(yè)務(wù)邏輯需要將原始數(shù)據(jù)轉(zhuǎn)化為用戶可理解的數(shù)據(jù),返回給視圖層,實(shí)現(xiàn)對(duì)數(shù)據(jù)的查詢功能。
2) 數(shù)據(jù)更新功能實(shí)現(xiàn):數(shù)據(jù)更新功能包括對(duì)數(shù)據(jù)的增加、刪除、修改功能。業(yè)務(wù)邏輯層接收用戶通過視圖層發(fā)送的請(qǐng)求,根據(jù)請(qǐng)求生成執(zhí)行數(shù)據(jù)庫更新所對(duì)應(yīng)的SQL語句,然后通過DataBaseAccess類的實(shí)例化對(duì)象調(diào)用RunSQLStringForUpdate方法,將生成的SQL語句作為string類型的參數(shù)傳遞給RunSQLStringForUpdate方法,實(shí)現(xiàn)對(duì)數(shù)據(jù)的更新功能。
3) 公共處理方法實(shí)現(xiàn):在進(jìn)行業(yè)務(wù)邏輯處理時(shí)需要用到MD5加密、對(duì)字符串的安全處理等常用功能,為減少冗余代碼量,將這些常用方法作為靜態(tài)方法統(tǒng)一存放在工具類UtilityClass類中,使用時(shí)只需調(diào)用工具類中的靜態(tài)方法即可實(shí)現(xiàn)MD5加密、字符串安全處理等常用功能。
3. 視圖層實(shí)現(xiàn)
視圖層接收業(yè)務(wù)邏輯層處理后的數(shù)據(jù),將數(shù)據(jù)以文字、曲線圖、數(shù)據(jù)表、圖片等形式嵌套在HTML模板頁中,生成相應(yīng)的WEB頁面返回給用戶。同時(shí),用戶通過點(diǎn)擊WEB頁面中的鏈接或者提交Form表單的方式發(fā)送請(qǐng)求,視圖層將請(qǐng)求交與業(yè)務(wù)邏輯層處理。
5 小結(jié)
本系統(tǒng)在ASP.NET的基礎(chǔ)上實(shí)現(xiàn)了對(duì)高校院系中圖書資料的管理功能,該系統(tǒng)采用了三層架構(gòu)的分層思想進(jìn)行設(shè)計(jì),使系統(tǒng)易于維護(hù)和升級(jí)。該系統(tǒng)自使用以來,運(yùn)行穩(wěn)定,為教師與學(xué)生借閱圖書提供了便利,提高了院系圖書資料的利用率,減輕院系工作人員的負(fù)擔(dān),提高工作效率,順應(yīng)了圖書管理數(shù)字化和信息化的發(fā)展要求,具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 徐楓.ASP.NET三層架構(gòu)體系分析與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2011(08):109.
[2] 張建華,顏彩繁.高等院校院系資料室圖書管理信息系統(tǒng)分析與設(shè)計(jì)[J].現(xiàn)代情報(bào),2008,(04).
[3] 鄧玉嬌,王欣. 圖書管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2011(02).
[4] 覃昆,張蓉蓉. 基于B/S結(jié)構(gòu)、三層架構(gòu)和ASP.NET 2.0技術(shù)的基層黨組織協(xié)同管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 貴州大學(xué)學(xué)報(bào)(自然科學(xué)版), 2008(01).