呂婷婷 馬麗 趙威


摘? 要 圖書館是人們獲取知識的重要場所。面對龐大的館藏數(shù)量,書面登記已經(jīng)沒有辦法保證圖書館的完整性和安全性。設(shè)計(jì)一個圖書館管理系統(tǒng),由Java語言編寫,整個系統(tǒng)為單點(diǎn)的垂直架構(gòu),分為控制層、業(yè)務(wù)層和持久層。系統(tǒng)的開發(fā)環(huán)境為JDK 1.8、Tomcat 8.5、MySQL 5.5。整個系統(tǒng)操作簡單、使用安全,希望為現(xiàn)代化圖書館管理提供一些思路。
關(guān)鍵詞 圖書館;Java;圖書館管理系統(tǒng)
中圖分類號:G250.71? ? 文獻(xiàn)標(biāo)識碼:B
文章編號:1671-489X(2021)20-0069-04
1? 研究現(xiàn)狀及系統(tǒng)開發(fā)目的
當(dāng)今書籍的種類日益增多,圖書的數(shù)量也急劇增長,人們對于圖書的需求也在增長。由于這些因素的影響,一座圖書館想要按部就班地管理人員和書籍就變得相當(dāng)困難,因此必須要使用更加科學(xué)的方式來管理。通過使用Java語言來開發(fā)一個用于圖書館管理的Web項(xiàng)目,能夠很好地解決上述問題。基于該項(xiàng)目的開發(fā),可以通過非常安全的方式進(jìn)行人員登記,并且對于各異的身份、操作和書籍,可以開發(fā)不一樣的功能模塊。對于圖書館的工作人員而言,這樣就減輕了工作負(fù)擔(dān),提高了工作效率;而對于圖書館本身來說,從圖書的安全性到整體的管理有序性,都能有很好的保證。
2? 開發(fā)工具和相關(guān)技術(shù)
在本次開發(fā)中主要使用的編程語言是Java,進(jìn)行開發(fā)的工具主要是Eclipse 4.7 Oxygen版,JDK的版本為1.8。數(shù)據(jù)庫使用的是MySQL 5.5,對數(shù)據(jù)庫進(jìn)行操作的工具是Navicat Premium,而用來部署項(xiàng)目的服務(wù)器主要是Tomcat 8.5。
2.1? JSP、HTML、CSS
在前端技術(shù)的選擇上使用了JSP、HTML、CSS三者結(jié)合。
JSP是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),在傳統(tǒng)的HTML文件中插入Java程序段和Jsp標(biāo)記,由此形成JSP文件,而使用它開發(fā)的Web應(yīng)用是跨平臺的,能在多種系統(tǒng)中運(yùn)行。它在保持HTML原有的狀態(tài)下,可以插入人們需要的Java代碼,因此可以實(shí)現(xiàn)前后端上的數(shù)據(jù)傳輸。除了可以使用Java代碼塊以外,還可以使用Jsp標(biāo)記進(jìn)行頁面包含、異常頁面的處理、文件的導(dǎo)入、JSTL標(biāo)記的引入等操作,再配合EL表達(dá)式的使用,對于后臺數(shù)據(jù)的處理展示等都非常方便。
HTML則是超文本標(biāo)記語言,通過各種標(biāo)簽,可以給網(wǎng)頁的頁面進(jìn)行布局、調(diào)整字體格式、導(dǎo)入視頻音頻、創(chuàng)建表單等,從而制作出一個完整的、靜態(tài)的網(wǎng)頁。
CSS是層疊樣式表,主要是可以通過元素選擇器、類選擇器、ID選擇器三種方式來對不同的HTML標(biāo)簽進(jìn)行樣式的修改。它本身有許多自帶的屬性,如修改背景顏色、字體顏色、字體加粗、斜體、行間距、內(nèi)間距、外間距等。
這里選擇它們?nèi)齻€,HTML在異常頁面或不需要數(shù)據(jù)傳輸,只需要頁面展示信息的時候使用,JSP則是在處理大量信息進(jìn)行回顯時使用,而CSS用來配合它們兩個來給它們添加相應(yīng)的樣式。
2.2? JavaScript、jQuery、Bootstrap
一個頁面不可能只是靜態(tài)的,為了有更好的用戶體驗(yàn),需要添加各種過度動畫和更好的樣式,并且要拋棄部分復(fù)雜的方式,選擇一些更加簡單的方便的工具包來幫助開發(fā)。
JavaScript是一種腳本語言,主要用在HTML頁面中,可以給頁面添加相應(yīng)的動畫效果,當(dāng)然可以使用它來進(jìn)行數(shù)據(jù)的處理。除了這些以外,JavaScript還可以使用Ajax進(jìn)行異步傳輸,通過Ajax可以實(shí)現(xiàn)前后端的分離,幫助后期維護(hù)項(xiàng)目。
jQuery就是一個JavaScript的框架,包含許多已經(jīng)寫好的JavaScript庫,其中有獲取元素、淡出效果、顯示效果、Ajax等功能的封裝,使用時可以用更少的代碼、更快的速度、更高的效率進(jìn)行動畫效果的開發(fā)。
Bootstrap是基于HTML、JavaScript、CSS的簡潔框架,封裝了許多優(yōu)美簡約的樣式風(fēng)格,使用起來也非常方便,只需要在相應(yīng)的HTML標(biāo)簽的class屬性上寫上對應(yīng)的值,就可以直接有對應(yīng)的樣式。這樣一來,在少量使用Java-Script的基礎(chǔ)上再去使用一些封裝的框架工具,開發(fā)時就會事半功倍。
2.3? SSM框架、B/S架構(gòu)
SSM框架主要是由三個框架集合形成的一個整體的項(xiàng)目架構(gòu):SpringMVC+Spring+MyBatis。
SpringMVC和Spring兩者為包含關(guān)系,由于前者經(jīng)常使用而被單獨(dú)提起,因此也可以理解為兩個框架的集合。SpringMVC為Spring 框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊,而MVC模塊則是由模塊層、視圖層、控制層來構(gòu)建,模塊層表示的是用于映射數(shù)據(jù)表的JavaBean,視圖層表示的是前端頁面,控制層則是用來轉(zhuǎn)發(fā)請求的控制器,而SpringMVC主要的作用就是在項(xiàng)目中攔截用戶請求,它的核心Servlet也就是前端控制器承擔(dān)中介或是前臺這樣的職責(zé),將用戶請求通過映射器處理器去匹配相應(yīng)的控制器,一旦找到對應(yīng)的控制器,在Java中也就是方法,就會處理請求,對請求進(jìn)行轉(zhuǎn)發(fā)或者重定向。
Spring是一個開放源代碼的設(shè)計(jì)層面框架,解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問題,因此,它將面向接口的編程思想貫穿整個系統(tǒng)應(yīng)用。簡單理解就是Spring提供了一個容器,所有的JavaBean對象都會被加載進(jìn)容器,要使用時不需要再次創(chuàng)建,直接使用就可以了。Spring在SSM框架中主要用來串聯(lián)各層。
MyBatis是一款持久層的開源框架,支持定制化 SQL、存儲過程以及高級映射,運(yùn)用也非常方便,只要寫好持久層的接口,再寫對應(yīng)的xml配置文件,就會自動生成實(shí)現(xiàn)類進(jìn)行數(shù)據(jù)庫的操作。
2.4? 相關(guān)的插件
在開發(fā)中,在前后端的技術(shù)以外,還需要許多的插件技術(shù)來完成一些細(xì)節(jié)上功能,這里使用了DataTables、jQuery-confirm、jQuery-validation、ECharts、Quartz五個插件。
DataTables插件是一款jQuery表格插件,是一個高度靈活的工具,可以將任何HTML表格添加高級的功能。在開發(fā)中經(jīng)常要將數(shù)據(jù)以表格的形式展示出來,那么使用DataTables插件就可以很快完成,并且該插件還能快速實(shí)現(xiàn)分頁、列表排序等功能。
jQuery-confirm是基于jQuery的一款彈窗插件。為了讓用戶有更好的體驗(yàn),經(jīng)常會有一些錯誤的提示或者選擇提示框,而使用該插件,只需要按照一定的配置,就可以實(shí)現(xiàn)彈窗的功能。并且它自帶一些樣式,如果不喜歡也可以自行進(jìn)行修改。
jQuery-validation同樣是基于jQuery的插件,主要用于前端的表單驗(yàn)證。在用戶進(jìn)行數(shù)據(jù)提交時,可以自定義規(guī)則進(jìn)行驗(yàn)證,保證傳遞到后臺數(shù)據(jù)的安全性和合法性。
ECharts是百度團(tuán)隊(duì)開發(fā)的一款強(qiáng)大的用于制作圖表的插件。在圖書館中有大量的書籍、人員、金錢的往來,一個形象的圖表可以讓人清晰地知道管理的進(jìn)度。ECharts還自帶多種圖表樣式,使用時只需按照固定的配置文件寫好就可以了。
Quartz則是一個任務(wù)調(diào)度的工具。在許多時候需要讓程序自動地做一些任務(wù),這時候就需要一個定時器來幫助完成,而Quartz就是通過觸發(fā)器、任務(wù)、調(diào)度器,三者相互結(jié)合,來完成一個任務(wù)的調(diào)度。
3? 系統(tǒng)可行性分析
3.1? 技術(shù)可行性
該項(xiàng)目主要是由Java語言編寫,采用Web項(xiàng)目來開發(fā),在前端上使用HTML+CSS的方式進(jìn)行頁面展示,再通過JSP頁面進(jìn)行數(shù)據(jù)展示;在后臺采用SSM框架從Controller層到Service層,最后到DAO層的架構(gòu),從頁面獲取到數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯處理,再對數(shù)據(jù)庫進(jìn)行增刪改查。在確保前后端完整的前提下,再使用Ajax進(jìn)行前后端分離,方便進(jìn)行后期維護(hù),其中會使用一些常用的插件來幫助完成一些細(xì)節(jié)上的功能,主要使用的工具是Eclipse和Navicat Premium,完成一個圖書館信息處理的項(xiàng)目在技術(shù)方面是可實(shí)施的。
3.2? 經(jīng)濟(jì)可行性
使用的Eclipse、Navicat Premium等工具都是免費(fèi)版的,不用開發(fā)者支付工具的費(fèi)用。在開發(fā)完成后需要在圖書館的前臺電腦中進(jìn)行環(huán)境的部署,其中包括Tomcat、MySQL、JDK等,而這些環(huán)境都是免費(fèi)的,無須支付其他費(fèi)用。而且,環(huán)境所需要的硬件條件也非常低,低壓的CPU、4 G以上的內(nèi)存,能夠上網(wǎng)就能夠訪問項(xiàng)目,所以對于圖書館而言成本也幾乎為零。因此,在經(jīng)濟(jì)成本上項(xiàng)目也是可行的。
3.3? 操作可行性
本次系統(tǒng)采用的是B/S架構(gòu),只需要有一個瀏覽器,能夠上網(wǎng),就能夠簡單訪問。通過Web項(xiàng)目,對于操作者來說,就像平常簡單的上網(wǎng)查閱資料一樣,非常簡單快捷,即使是對于沒有任何軟件或硬件知識的人員來說,也能夠在極其短的時間內(nèi)學(xué)會操作。所以,在對于工作人員的操作上也是可行的。
4? 詳細(xì)設(shè)計(jì)
本系統(tǒng)主要由登錄模塊、注冊模塊、管理員模塊、成員模塊組成,其中管理員模塊下有成員管理、圖書管理、借閱管理、收入統(tǒng)計(jì)等功能,成員模塊由修改信息、書籍查詢、借閱記錄、罰款通知等功能構(gòu)成。系統(tǒng)總體功能結(jié)構(gòu)圖如圖1所示。
4.1? 登錄模塊
用戶在主頁直接進(jìn)行登錄,通過賬號密碼來和數(shù)據(jù)庫中的信息比對,正確才能進(jìn)入后臺,否則會給予相應(yīng)的錯誤信息提示,并且不可跳過登錄。如果成員想要直接通過路徑進(jìn)行訪問,也會提示成員先登錄。
4.2? 用戶注冊
用戶如果沒有賬號想要登錄,必須要先進(jìn)行賬號的注冊才能夠進(jìn)入,可以通過點(diǎn)擊“還沒有賬號”,會彈出提示框來進(jìn)行注冊,填寫好合法的信息后就可以了。
4.3? 管理員界面
管理員身份登錄后會進(jìn)入到管理員的后臺界面,管理員界面包括四個功能模塊,分別是限制成員、圖書信息、借閱信息、收入統(tǒng)計(jì)模塊。
4.3.1? 限制成員功能? 限制成員的功能是管理員在檢查到成員的資料或者信息不合法時,有權(quán)利對這些違法的用戶進(jìn)行禁止登錄,并在登錄時也會提示他已經(jīng)被禁止權(quán)限了,可以向管理員申請恢復(fù)權(quán)限,這樣可以保證用戶的信息準(zhǔn)確合法。
4.3.2? 圖書信息功能? 管理員中的圖書信息模塊是對所有書籍的四個操作,包括查詢所有書籍信息、添加新的書籍、刪除原有的書籍、修改原有書籍的信息。通過這些操作,管理員可以很好地管理圖書館中的所有書籍,讓書籍更加有序,并且增強(qiáng)可操作的靈活性。
4.3.3? 借閱信息功能? 在管理員的操作中,最重要的一點(diǎn)是對于借閱的成員審核其是否信用良好,借閱出去以后還要很好地記錄下來。管理員可以選擇批準(zhǔn)或者拒絕他借書,當(dāng)然這些操作要配合現(xiàn)實(shí)情況中的借書。一旦選擇批準(zhǔn),借閱日期就是當(dāng)天,超過15天沒有歸還就算逾期,每超過一天就會記錄下1元的罰款,每天都會進(jìn)行計(jì)算。借閱成員來還書時需要上交相應(yīng)的逾期費(fèi)用。這樣既能夠保證成員如期歸還書籍,也能夠保證成員方便地借書。
4.3.4? 收入統(tǒng)計(jì)功能? 圖書館雖然不是一個營利的場所,但是還是存在關(guān)于圖書逾期罰款的管理。
4.4? 成員管理界面
在成員管理界面,成員一共有四個功能模塊,分別是修改信息、查詢書籍、借閱記錄、罰款通知,在左上角還可以進(jìn)行注銷當(dāng)前賬號的操作。
4.4.1? 修改信息功能? 在成員管理中最基本的就是對于自己的信息進(jìn)行修改。在修改信息過程中,有部分信息不能夠修改,因?yàn)檫@些信息都是比較重要的,并且是在日常生活中不會更改的。
4.4.2? 查詢書籍功能? 利用查詢書籍功能,可以查看所有的書籍信息,包括書籍的名稱、作者、庫存等。成員可以對其進(jìn)行借閱申請,一旦申請后,由管理員進(jìn)行審核,審核通過后,就可以借閱。
4.4.3? 借閱記錄功能? 成員在借閱書籍后,可以通過借閱記錄功能查詢借閱的審核進(jìn)度,并且可以通過后面的查看書籍按鈕,直接查看當(dāng)前借閱書籍的信息資料。一旦審核通過,借閱的時間就是當(dāng)天,并且需要在15天內(nèi)歸還書籍,否則就會開始計(jì)算罰款,每天1元??梢姡@樣方便成員查看自己的借閱情況。
4.4.4? 罰款通知功能? 如果在登錄以后,成員用戶看到界面右上角有一個提示“你當(dāng)前有一個消息”,那么就是關(guān)于罰款的消息,是他逾期歸還書籍而產(chǎn)生了罰款,這里通知他注意。
5? 測試
對于圖書館管理系統(tǒng),由于內(nèi)部的邏輯并不復(fù)雜,只需要運(yùn)行程序,按照正常操作者的行為來進(jìn)行各個功能測試,達(dá)到每個功能都可以快速、準(zhǔn)確地實(shí)現(xiàn)。部分功能模塊的具體測試內(nèi)容如表1所示。
6? 結(jié)束語
本文介紹的圖書館管理系統(tǒng)使用了Java語言,采用MVC設(shè)計(jì)模式,又使用了SSM框架,整體由一種垂直架構(gòu)進(jìn)行開發(fā),從一開始的需求分析,到框架結(jié)構(gòu)搭建、數(shù)據(jù)字典的建立、環(huán)境搭建、前臺頁面的編寫,再到后臺Con-troller層、Service層、DAO層的開發(fā)。本次項(xiàng)目整體分為兩個大的模塊,每個模塊下包含一些小的功能模塊,每個功能模塊又涉及不同的小的技術(shù),像彈出框的插件confirm,任務(wù)調(diào)度工具Quartz,表單驗(yàn)證插件valida-tion,這些功能強(qiáng)大的小技術(shù)更好地完善了圖書館管理系統(tǒng)的功能?!?/p>
參考文獻(xiàn)
[1]陸校松.基于CSS+DIV的高校網(wǎng)站首頁設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2015,31(12):102-103,12.
[2]王永.基于Web的數(shù)字迎新系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代信息科技,2018,2(10):28-30.
[3]劉佳潤.數(shù)字時代圖書館管理創(chuàng)新途徑[J].智庫時代,2019(23):148,163.
[4]曾艷麗,李諾.針對SSM框架Web系統(tǒng)的相關(guān)思考[J].信息與電腦(理論版),2019(3):116-117.
[5]唐權(quán).SSM框架條件分頁查詢研究與實(shí)現(xiàn)[J].四川職業(yè)技術(shù)學(xué)院學(xué)報,2019,29(1):139-143.
[6]嚴(yán)義輝,袁飛虎,洪杰坤,等.基于Java的圖書館座位管理系統(tǒng)的研究[J].計(jì)算機(jī)產(chǎn)品與流通,2019(6):96.
[7]田豐維,馮永安.計(jì)算機(jī)軟件JAVA編程特點(diǎn)及其技術(shù)應(yīng)用[J].教育教學(xué)論壇,2019(21):268-269.
[8]歐陽宏基,葛萌.Java EE數(shù)據(jù)初始化應(yīng)用中的設(shè)計(jì)模式解決方案[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2019,28(4):188-193.
[9]王曉妮,段群.基于MVC模式的數(shù)據(jù)挖掘平臺設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2018(15):53-55.
[10]姚云飛,杜洪波,梁建輝.基于SpringMVC框架畢業(yè)設(shè)計(jì)管理系統(tǒng)設(shè)計(jì)[J].軟件,2018,39(1):91-93.
[11]劉焱.jQuery在平臺中的應(yīng)用開發(fā)研究[J].信息系統(tǒng)工程,2019(1):91.
[12]Theisen KJ. Programming languages in chemistry: A review of HTML5/JavaScript[J].Journal of Chemin-formatics,2019,11(1):11.