版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE22XXX學(xué)院實(shí)驗(yàn)報(bào)告作業(yè)題目:圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)姓名:院(系):專業(yè)班級(jí):學(xué)號(hào):指導(dǎo)老師:成績(jī):名目TOC\o”1-4”\h\z\uHYPERLINK\l"_Toc282078441”1引言 2HYPERLINK\l"_Toc282078442"1。1編寫目的?2HYPERLINK\l"_Toc282078443"1.2范圍?2HYPERLINK\l"_Toc282078444"1.3定義?2HYPERLINK\l"_Toc282078445"1.4參考資料?3HYPERLINK\l”_Toc282078446"2項(xiàng)目概述?3HYPERLINK\l"_Toc282078447”2.1產(chǎn)品目標(biāo)?3HYPERLINK\l"_Toc282078448"2。1.1開發(fā)意圖?3HYPERLINK\l"_Toc282078449”2.1.2應(yīng)用目標(biāo) 3HYPERLINK\l"_Toc282078450"2。1。3背景?3HYPERLINK\l”_Toc282078451"2.2產(chǎn)品功能?4HYPERLINK\l”_Toc282078452"2。3用戶特點(diǎn) 4HYPERLINK3簡(jiǎn)略需求?4HYPERLINK\l"_Toc282078454"3。1功能需求?4HYPERLINK\l"_Toc282078455"3。1。1圖書信息采集?4HYPERLINK3.1。3讀者信息查詢?5HYPERLINK\l"_Toc282078458"3.1。4圖書檢索?5HYPERLINK\l"_Toc282078459”3.1.5借書?6HYPERLINK\l”_Toc282078460”3。1.6還書?6HYPERLINK\l”_Toc282078461"3.1.7讀者借閱信息?7HYPERLINK\l"_Toc282078462”3.1.8管理員維護(hù)?7HYPERLINK\l”_Toc282078464"3.2外部接口需求?8HYPERLINK\l"_Toc282078465"3。2.1用戶接口?83.2。2硬件接口?8HYPERLINK\l"_Toc282078467"3.2.3軟件接口?8HYPERLINK\l"_Toc282078468"3.2。4通信接口?8HYPERLINK\l"_Toc282078469"3。3性能需求 9HYPERLINK\l"_Toc282078470"3。4設(shè)計(jì)約束?9HYPERLINK3.5.1平安性?PAGEREF_Toc282078472\h10HYPERLINK\l”_Toc282078473"3.5.3可維護(hù)性?10HYPERLINK\l"_Toc282078474”3。5.4可轉(zhuǎn)移\轉(zhuǎn)換性 10HYPERLINK\l"_Toc282078475”3。6其他需求?PAGEREF_Toc282078475\h10HYPERLINK\l"_Toc282078476"3.6。1數(shù)據(jù)庫(kù)?PAGEREF_Toc282078476\h10HYPERLINK\l"_Toc282078477"3。6.2場(chǎng)合適應(yīng)性需求 PAGEREF_Toc282078477\h12HYPERLINK\l"_Toc282078478”3.7系統(tǒng)主要頁(yè)面 PAGEREF_Toc282078478\h12HYPERLINK4系統(tǒng)實(shí)現(xiàn)?16HYPERLINK\l"_Toc282078480"4.1圖書查詢模塊的實(shí)現(xiàn)及主要代碼 PAGEREF_Toc282078480\h16HYPERLINK\l"_Toc282078481”4.2借書查詢模塊的實(shí)現(xiàn)及主要代碼?PAGEREF_Toc282078481\h16HYPERLINK\l"_Toc282078482"4.3借書模塊的實(shí)現(xiàn)及主要代碼?PAGEREF_Toc282078482\h18HYPERLINK4.4圖書管理模塊的實(shí)現(xiàn)及主要代碼?PAGEREF_Toc282078483\h211引言隨著計(jì)算機(jī)技術(shù)的不斷應(yīng)用和提高,計(jì)算機(jī)已經(jīng)深化到社會(huì)生活的各個(gè)角落。而很多學(xué)校圖書館,仍采納手工管理圖書的方法,不僅效率低、易出錯(cuò)、手續(xù)繁瑣,而且耗費(fèi)大量的人力。為了滿意圖書館管理人員對(duì)圖書館書籍,讀者資料,借還書等進(jìn)行高效的管理,在工作人員具備肯定的計(jì)算機(jī)操作能力的前提下,特編此圖書管理系統(tǒng)軟件以提高圖書館的管理效率。1.1編寫目的本需求的編寫是為了討論圖書管理系統(tǒng)軟件的開發(fā)途徑和應(yīng)用方法。同時(shí)它也是進(jìn)行項(xiàng)目策劃、概要設(shè)計(jì)和簡(jiǎn)略設(shè)計(jì)的基礎(chǔ),是維護(hù)人員進(jìn)行內(nèi)部維護(hù),信息更新,驗(yàn)收和測(cè)試的依據(jù)。本需求的預(yù)期讀者是與圖書管理系統(tǒng)軟件開發(fā)有聯(lián)系的決策人,開發(fā)組人員,支持該項(xiàng)目的領(lǐng)導(dǎo)和公司人員等.1.2范圍項(xiàng)目名稱:圖書管理系統(tǒng)。項(xiàng)目功能:實(shí)現(xiàn)圖書館圖書查詢、借書查詢、借書、還書、讀者管理、圖書管理、關(guān)于、退出等功能。項(xiàng)目開發(fā)者:司坤坤該項(xiàng)目的用戶:學(xué)校圖書館。1.3定義圖書管理系統(tǒng):圖書管理是幫助圖書館管理人員對(duì)圖書信息的添加、刪除和修改等,以及幫助讀者對(duì)圖書信息的檢索,借閱情況的查詢等的管理。1。4參考資料《JavaEE基礎(chǔ)有用教程》——鄭阿奇電子科技出版社2項(xiàng)目概述為便利對(duì)圖書館書籍,讀者資料,借還書等進(jìn)行高效的管理,特編寫該程序以提高圖書館的管理效率。使用該程序之后,圖書館管理人員可以管理讀者的登記、圖書的購(gòu)入、借出、歸還以及注銷等;還可以查詢某位讀者、某本圖書的借閱情況,對(duì)當(dāng)前借閱情況給出一些統(tǒng)計(jì),給出統(tǒng)計(jì)表格,以全面掌握?qǐng)D書的流通情況。2.1產(chǎn)品目標(biāo)2。1.1開發(fā)意圖a。為了學(xué)校圖書館對(duì)圖書的管理更便利;b。為了減輕圖書管理人員的工作負(fù)擔(dān);c.為了便利讀者對(duì)圖書信息的檢索及借閱情況的查詢。2.1.2應(yīng)用目標(biāo)通過本系統(tǒng)軟件,能幫助圖書館管理人員利用計(jì)算機(jī),快速便利地對(duì)圖書館書籍,讀者資料,借還書等進(jìn)行高效的管理。讀者可以實(shí)時(shí)的進(jìn)行圖書的檢索和借閱。2.1。3背景人工管理圖書的手續(xù)繁索、效率低下給具有強(qiáng)烈時(shí)間觀念的管理人員帶來了諸多不便,學(xué)校圖書館缺少一套完善的圖書管理軟件,為了對(duì)圖書的管理便利,因此開發(fā)了本軟件。2。2產(chǎn)品功能系統(tǒng)由圖書查詢子系統(tǒng)、借書查詢子系統(tǒng)、借書子系統(tǒng)、還書子系統(tǒng)、讀者管理子系統(tǒng)、圖書管理子系統(tǒng)、關(guān)于、退出等五大主要模塊構(gòu)成。簡(jiǎn)略功能如下:查詢?nèi)繒斜怼栝喦闆r和全部用戶列表。管理員用戶分為系統(tǒng)管理員和借閱管理員三種角色,不同角色具有不同的權(quán)限。用戶登錄和用戶管理功能,包括讀者和管理員兩種角色的管理。圖書管理包括增加圖書信息、刪除圖書信息、修改圖書信息和查詢圖書信息功能。借書和還書管理,實(shí)現(xiàn)借閱者的借書、還書功能.2。3用戶特點(diǎn)本軟件的最終用戶是面對(duì)管理員(圖書管理員和其它管理人員)、讀者(老師和同學(xué)等),他們都具有肯定的計(jì)算機(jī)應(yīng)用基礎(chǔ),可以比較嫻熟操作計(jì)算機(jī).管理員和讀者都是常常性用戶。系統(tǒng)維護(hù)人員為計(jì)算機(jī)專業(yè)人員,熟識(shí)數(shù)據(jù)庫(kù)、操作系統(tǒng)、網(wǎng)絡(luò)維護(hù)工作。維護(hù)人員為間隔性用戶。3簡(jiǎn)略需求3。1功能需求3.1.1圖書信息采集規(guī)格說明:圖書的全部信息(包括:分類號(hào)、條形碼、書名、作者、內(nèi)容摘要、價(jià)格和購(gòu)書日期等)采集輸入:圖書的全部信息.處理:通過圖書管理系統(tǒng)寫入數(shù)據(jù)庫(kù)。輸出:圖書信息的全部?jī)?nèi)容。3.1.2讀者信息采集規(guī)格說明:讀者的簡(jiǎn)略信息(包括:讀者賬號(hào),姓名,學(xué)院,專業(yè),班級(jí)等)采集輸入:讀者簡(jiǎn)略信息.處理:通過圖書管理系統(tǒng)寫入數(shù)據(jù)庫(kù)輸出:讀者簡(jiǎn)略信息。3。1。3讀者信息查詢規(guī)格說明:依據(jù)讀者編號(hào)查詢讀者的相關(guān)信息.輸入:讀者信息的關(guān)鍵字(讀者編號(hào)或姓名)。處理:利用關(guān)鍵字在讀者數(shù)據(jù)庫(kù)中找到此編號(hào)或姓名讀者的相關(guān)信息。輸出:讀者的相關(guān)信息。3。1.4圖書檢索規(guī)格說明:查找圖書的相關(guān)信息。輸入:書信息的關(guān)鍵字(如圖書的書名、作者、出版社、ISBN號(hào)等)。處理:利用關(guān)鍵字在圖書名目文件中找到此圖書分類號(hào)或書名圖書的相關(guān)信息。輸出:圖書的相關(guān)信息。3.1。5借書規(guī)格說明:把讀者借書的相關(guān)信息(包括:借閱人編號(hào)、圖書條碼、借閱日期和還書日期等)寫入系統(tǒng).輸入:讀者借書信息。處理:通過借還書子系統(tǒng)寫入借書數(shù)據(jù)庫(kù)中。輸出:讀者借書信息的全部?jī)?nèi)容.3。1.6還書規(guī)格說明:把讀者還書的相關(guān)信息(包括:借閱人編號(hào)、圖書條碼和還書日期等)寫入系統(tǒng)。輸入:讀者還書信息。處理:通過借還書子系統(tǒng)寫入還書數(shù)據(jù)庫(kù)中。輸出:讀者超期天數(shù)和罰款金額。3。1。7讀者借閱信息規(guī)格說明:查詢讀者借書的相關(guān)信息.輸入:借書信息的關(guān)鍵字(賬號(hào))。處理:通過讀者借閱信息查詢系統(tǒng)查詢讀者借閱情況。輸出:修改后的管理員的相關(guān)信息.3.1.8管理員維護(hù)規(guī)格說明:針對(duì)不同身份的管理員的對(duì)其所負(fù)責(zé)的權(quán)限及信息進(jìn)行維護(hù)。輸入:管理員的賬號(hào)和密碼.處理:通過用戶管理子系統(tǒng)來。輸出:不同身份的管理員管理系統(tǒng)的結(jié)果.3。1。9系統(tǒng)幫助規(guī)格說明:給用戶供應(yīng)的系統(tǒng)簡(jiǎn)略使用指南.3.2外部接口需求3。2.1用戶接口本產(chǎn)品的用戶一般需要通過終端進(jìn)行操作,進(jìn)入主界面后點(diǎn)擊相應(yīng)的窗口,分別進(jìn)入相對(duì)應(yīng)的界面(如:輸入界面、輸出界面).用戶對(duì)程序的維護(hù),最好要有備份.3。2。2硬件接口服務(wù)器端:CPU:P4以上.內(nèi)存:256MB以上??蛻舳耍篊PU:P3以上.內(nèi)存:256MB以上.顯示卡:16K色以上顯示模式。3.2。3軟件接口服務(wù)器端:操作系統(tǒng):中文WindowsServer2000,WindowsXP。JRE環(huán)境:JRE1。5以上版本.客戶端:操作系統(tǒng):Windows2000/XPJRE環(huán)境:JRE1。5以上版本。3。2。4通信接口基于TCP/IP協(xié)議的局域網(wǎng)或校內(nèi)網(wǎng)。3.3性能需求由于此開發(fā)項(xiàng)目針對(duì)圖書館,使用頻度較高,使用性要求比較高:1。精度需求在精度需求上,依據(jù)使用需要,在各項(xiàng)數(shù)據(jù)的輸入,輸出及傳輸過程中,可以滿意各種精度的需求。2.時(shí)間需求在軟件方面,響應(yīng)時(shí)間,更新處理時(shí)間都比較快且飛快,完全滿意用戶要求。查詢速度:不超過10秒;其它全部交互功能反應(yīng)速度:不超過3秒;牢靠性:平均故障間隔時(shí)間不低于200小時(shí).4。靈敏性當(dāng)用戶需求,如操作方式,運(yùn)行環(huán)境,結(jié)果精度,數(shù)據(jù)結(jié)構(gòu)于其他軟件接口等發(fā)生變化時(shí),設(shè)計(jì)的軟件要做適當(dāng)調(diào)整,靈敏性格外大。5.故障處理在開發(fā)階段可以隨即修改數(shù)據(jù)庫(kù)里的相應(yīng)內(nèi)容。總之,要求穩(wěn)定、平安、便捷,易于管理和操作。3。4設(shè)計(jì)約束1.環(huán)境約束?運(yùn)行該軟件所在的服務(wù)器端必須是P4以上、內(nèi)存256兆以上的計(jì)算機(jī)??蛻舳吮仨毷荘3以上、內(nèi)存256兆以上的PC機(jī),并且具備訪問網(wǎng)絡(luò)的功能。2。標(biāo)準(zhǔn)約束?該軟件的開發(fā)完全依據(jù)企業(yè)標(biāo)準(zhǔn)開發(fā),包括硬件、軟件和文檔規(guī)格。3.硬件限制服務(wù)器端必須是P4以上、內(nèi)存256兆以上的計(jì)算機(jī)??蛻舳吮仨毷牵校骋陨?、內(nèi)存512兆以上的PC機(jī)。3。5屬性3.5。1平安性本系統(tǒng)的規(guī)模比較小,不需要保密技術(shù);限定一個(gè)程序中某些區(qū)域的規(guī)約,給不同的模塊安排不同的功能。3。5.3可維護(hù)性本系統(tǒng)的組成結(jié)構(gòu)獨(dú)立性強(qiáng),模塊化程度高,具有高內(nèi)聚低耦合的特性,維護(hù)起來比簡(jiǎn)潔。3。5.4可轉(zhuǎn)移\轉(zhuǎn)換性可轉(zhuǎn)移的環(huán)境是P3以上,至少256兆的環(huán)境;不行修改任何部分;可用向上兼容的高版本的漢語(yǔ)編程系統(tǒng)。3.6其他需求3。6.1數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是實(shí)現(xiàn)有組織地,動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),便利多用戶訪問的計(jì)算機(jī)軟硬自愿組成的系統(tǒng);他與文件系統(tǒng)的重要區(qū)分是數(shù)據(jù)的充分共享,交叉訪問,與應(yīng)用程序的高度獨(dú)立性。由于本軟件數(shù)據(jù)庫(kù)主要使用了4張基本表,即book、lend、login、student表,每個(gè)表的簡(jiǎn)略描述如下:1、book表,用于存放圖書的簡(jiǎn)略信息功能名稱:book表(圖書信息表)存儲(chǔ)位置:圖書信息表存儲(chǔ)組織:一本圖書一條記錄主鍵:isbn數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明isbn人工采集主鍵,必須輸入bookname人工采集必須輸入author人工采集publisher人工采集price人工采集cnum人工采集snum人工采集summary人工采集photo自動(dòng)采集2、lend表,用于存放所借圖書的信息功能名稱:lend表(借閱信息表)存儲(chǔ)位置:借閱信息存儲(chǔ)組織:一次借閱一條記錄主鍵:bookId數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明bookId人工采集主鍵,必須輸入readerId自動(dòng)采集bookName人工采集publisher自動(dòng)采集price自動(dòng)采集isbn自動(dòng)采集必須輸入lendTime自動(dòng)采集3、login表,用于存放讀者和管理員的基本信息功能名稱:login表(管理員/讀者信息表)存儲(chǔ)位置:管理員讀者信息存儲(chǔ)組織:一次借閱一條記錄主鍵:id數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明id自動(dòng)采集主鍵,必須輸入name自動(dòng)采集Nassword自動(dòng)采集Role自動(dòng)采集4、student表,用于存放同學(xué)信息功能名稱:student表(同學(xué)信息表)存儲(chǔ)位置:同學(xué)信息表存儲(chǔ)組織:一次借閱一條記錄主鍵:readerId數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明readerId人工采集主鍵,必須輸入name人工采集spec人工采集sex人工采集Born人工采集num自動(dòng)采集snum自動(dòng)采集photo自動(dòng)采集3.6.2場(chǎng)合適應(yīng)性需求該系統(tǒng)須在網(wǎng)絡(luò)環(huán)境中才能使用,可以部署在任何局域網(wǎng)和校內(nèi)網(wǎng)內(nèi).3。7系統(tǒng)主要頁(yè)面1、以管理員的身份登錄(1)項(xiàng)目部署完后啟動(dòng)Tomcat打開掃瞄器,在地址欄中輸入以下地址:http://localhost:8080/Struts2_Hibernate_Spring/進(jìn)入圖書管理系統(tǒng)首頁(yè),如下圖:在右上角的登錄區(qū)框中登錄登錄名:admin密碼:123點(diǎn)擊登錄登錄后的頁(yè)面,與登錄前表面大致相同,只是功能按鈕由灰色變?yōu)楹谏?可操作狀態(tài)(2)點(diǎn)擊圖書管理按鈕,進(jìn)入圖書管理界面:輸入要追加的圖書信息,然后點(diǎn)擊左側(cè)的“圖書追加”進(jìn)行圖書的添加(3)點(diǎn)擊圖書追加按鈕,圖書添加成功,系統(tǒng)給出提示(紅字),如下圖:修改圖書,刪除圖書的操作及運(yùn)行界面與“添加圖書”相像。(4)圖書管理員可以查看讀者的借書情況,點(diǎn)擊借書按鈕,進(jìn)入如下界面:輸入借書證號(hào),點(diǎn)擊查詢,如果存在該同學(xué)存在,就會(huì)顯示其借書信息.(5)圖書查詢,在ISBN一欄中輸入要查詢的圖書ISBN號(hào),點(diǎn)擊圖書查詢按鈕即可查詢圖書,如下圖:(6)平安退出,未退出前,按鈕均為黑色,如下圖:點(diǎn)擊退出按鈕后,按鈕變?yōu)榛疑?系統(tǒng)實(shí)現(xiàn)4。1圖書查詢模塊的實(shí)現(xiàn)及主要代碼1.查詢模塊Action的實(shí)現(xiàn)關(guān)鍵代碼:publicStringselectBook()throwsException{? if(book.getIsbn()==null||book。getIsbn().equals(””)){???this。setMessage(”請(qǐng)輸入ISBN");?? returnSUCCESS; ?}??Bookb=bookservice.selectBook(book.getIsbn());??if(b==null){?? this.setMessage(”不存在的ISBN號(hào)”);???returnSUCCESS;? }??Maprequest=(Map)ActionContext.getContext().get("request”); ?request.put("onebook",b);??returnSUCCESS;?}4.2借書查詢模塊的實(shí)現(xiàn)及主要代碼1.Action的實(shí)現(xiàn)LendSearchAction.a(chǎn)ction:packageorg.action;importjava。util.Map;importorg.dao。impl。LendDaoImpl;importorg.service.BookService;importorg.service.LendService;importorg.service。StudentService;importorg.vo.Lend;importcom。opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionSupport;publicclassLendSearchActionextendsActionSupport{ privateLendlend;?privateLendServicelendservice;?privateStudentServicestudentservice;?privateBookServicebookservice; privateStringmessage;?publicLendgetLend(){??returnlend;?}?publicvoidsetLend(Lendlend){ ?this.lend=lend; }?publicLendServicegetLendservice(){??returnlendservice; }?publicvoidsetLendservice(LendServicelendservice){ ?this。lendservice=lendservice;?}?publicStudentServicegetStudentservice(){??returnstudentservice; }?publicvoidsetStudentservice(StudentServicestudentservice){??this.studentservice=studentservice; }?publicBookServicegetBookservice(){ returnbookservice;?} publicvoidsetBookservice(BookServicebookservice){??this.bookservice=bookservice;?}?publicStringgetMessage(){??returnmessage;?}?publicvoidsetMessage(Stringmessage){? this.message=message;?}??publicStringselectOneStudent()throwsException{?? if(lend.getReaderId()==null||lend.getReaderId()。equals(””)){? ?this。setMessage(”請(qǐng)輸入借書證號(hào)!");? ?returnSUCCESS;??}elseif(studentservice。selectStudent(lend.getReaderId())==null){?? //這里推斷輸入的結(jié)書證號(hào)是否存在對(duì)應(yīng)的讀者? ?System.out。println("reader<?>?>>zaizheli---——"+lend.getReaderId());? ?this.setMessage("您輸入的借書證號(hào)不存在”);? returnSUCCESS;??}??Maprequest=(Map)ActionContext.getContext().get("request”);? request。put(”readerId”,studentservice.selectStudent(lend.getReaderId()).getReaderId());??returnSUCCESS;?} ?publicStringselectOneBook()throwsException{? System。out.println("BookIsbn<?>?>>—-”+lend.getBookId());? Maprequest=(Map)ActionContext.getContext().get(”request”); ?if(lend.getBookId()==null||lend。getBookId()。equals(”")){? ?this.setMessage(”圖書ID不能為空!");?? returnSUCCESS;??}elseif(lendservice。selectByBookId(lend.getBookId())==null){ ?this.setMessage("對(duì)不起,您沒有借該圖書?。?; ??returnSUCCESS;??}??? Lendl=lendservice.selectByBookId(lend。getBookId()); ?//Lendl=newLendDaoImpl()。selectByBookId("1");???System.out。println(”Id()()()()()>>〉--—-—-"+l.getBookName());???request。put(”Id”,l.getBookId());???request.put(”ISBN”,l。getIsbn()); ? request.put(”bookName",l。getBookName());???request.put("publisher",l.getPublisher());???request.put("price",l.getPrice());???request。put(”lendTime",l.getLendTime());???request.put("photo",bookservice。selectBook(lendservice。selectByBookId(lend.getBookId()).getIsbn()).getPhoto()); ??request。put(”readerId",lend。getReaderId());?? returnSUCCESS;?}}4.3借書模塊的實(shí)現(xiàn)及主要代碼1.Action的實(shí)現(xiàn)LendAction.action:packageorg.a(chǎn)ction;importjava.util.Dat(yī)e;importjava。util.List;importjava.util.Map;importorg。service.BookService;importorg。service.LendService;importorg.service.StudentService;importorg.tool。Pager;importorg。vo.Book;importorg.vo。Lend;importorg.vo。Student;importcom.opensymphony。xwork2。ActionContext;importcom.opensymphony.xwork2.ActionSupport;publicclassLendActionextendsActionSupport{?privateLendlend;?privateLendServicelendservice;?privat(yī)eStudentServicestudentservice;?privateBookServicebookservice;?privateStringmessage;?privateintpageNow=1; privateintpageSize=4;?publicLendgetLend(){ returnlend;?}?publicvoidsetLend(Lendlend){??this。lend=lend;?}?publicintgetPageNow(){??returnpageNow; }?publicvoidsetPageNow(intpageNow){ ?this.pageNow=pageNow;?}?publicintgetPageSize(){??returnpageSize;?}?publicvoidsetPageSize(intpageSize){??this。pageSize=pageSize; } publicStringselectAllLend()throwsException{??if(lend.getReaderId()==null||lend.getReaderId()。equals(”")){???this.setMessage(”借書證號(hào)為空!");???returnSUCCESS; ?}elseif(studentservice.selectStudent(lend.getReaderId())==null){ ??this。setMessage("您輸入的借書證號(hào)不存在");???returnSUCCESS;??}? this.setMessage("”);??Listlist=lendservice.selectBook(lend.getReaderId(),this.getPageNow(),this。getPageSize());? Maprequest=(Map)ActionContext。getContext()。get(”request"); Pagerpage=newPager(this。getPageNow(),lendservice.selectBookSize(lend.getReaderId()));? request。put(”list",list);??request。put("page”,page);??request.put("readerId”,lend.getReaderId());??returnSUCCESS; } publicStringlendBook()throwsException{?if(lend。getIsbn()==null||lend.getIsbn().equals(”")||bookservice.selectBook(lend。getIsbn())==null){?this.setMessage(”請(qǐng)輸入正確的ISBN號(hào)!”);?Listlist=lendservice。selectBook(lend.getReaderId(),this.getPageNow(),his.getPageSize());?Pagerpage=newPager(this.getPageNow(),lendservice.selectBookSize(lend。getReaderId()));???Maprequest=(Map)ActionContext。getContext().get(”request");???request。put("page",page);???request.put("readerId",lend。getReaderId());? request.put(”list",list); ??returnSUCCESS;??}elseif(lend.getBookId()==null||lend.getBookId().equals("”)||lendservice。selectByBookId(lend。getBookId())!=null){??this。setMessage(”您未輸入圖書號(hào)或輸入的圖書號(hào)已經(jīng)存在!");? Listlist=lendservice。selectBook(lend。getReaderId(),this.getPageNow(),this.getPageSize());?Pagerpage=newPager(this。getPageNow(),lendservice.selectBookSize(lend。getReaderId()));???Maprequest=(Map)ActionContext。getContext().get("request");???request.put("page”,page); ?request.put(”readerId”,lend.getReaderId());???request.put(”list”,list);???returnSUCCESS;??}??Lendl=newLend(); l.setIsbn(lend.getIsbn());??l.setBookId(lend。getBookId());??l.setReaderId(lend。getReaderId()); ?l.setLendTime(newDate());??Bookb=bookservice。selectBook(lend.getIsbn());? Studentstu=studentservice.selectStudent(lend.getReaderId());??stu.setNum(stu.getNum()+1);??b.setSnum(b.getSnum()-1);? lendservice.addLend(l,b,stu);? this。setMessage(”借書成功!");??Listlist=lendservice.selectBook(lend。getReaderId(),this.getPageNow(),this.getPageSize());?Pagerpage=newPager(this.getPageNow(),lendservice。selectBookSize(lend.getReaderId())); Maprequest=(Map)ActionContext。getContext().get("request");??request.put("page",page);??request.put(”readerId",lend.getReaderId());? request。put("list”,list);??returnSUCCESS;?} publicStringgetMessage(){? returnmessage; }?publicvoidsetMessage(Stringmessage){??this。message=message;?}?publicLendServicegetLendservice(){??returnlendservice;?}?publicvoidsetLendservice(LendServicelendservice){??this。lendservice=lendservice;?}?publicStudentServicegetStudentservice(){??returnstudentservice;?}?publicvoidsetStudentservice(StudentServicestudentservice){??this.studentservice=studentservice;?}?publicBookServicegetBookservice(){??returnbookservice;?}?publicvoidsetBookservice(BookServicebookservice){ ?this.bookservice=bookservice; }}4。4圖書管理模塊的實(shí)現(xiàn)及主要代碼1.Action的實(shí)現(xiàn)BookAction.action關(guān)鍵代碼:?publicStringbookSelect()throwsException{??StringBufferhql=newStringBuffer();? hql.append("fromBookwhere1=1");??if(book.getIsbn()!=null&&!book。getIsbn().equals("")){???hql.a(chǎn)ppend("andisbnlike'%”+book.getIsbn()+"%’");??}??if(book.getBookname()!=null&&!book.getBookname()。equals(””)){???System。out.println(book.getBookname());?? hql。append("andbooknamelike'%"+book.getBookname()+"%'"); ?}??if(book.getPublisher()!=null&&!book.getPublisher().equals(””)){? ?System。out.println(book.getPublisher());? ?hql.append("andpublisherlike’%”+book.getPublisher()+"%'"); ?}??if(book。getAuthor()!=null&&!book.getAuthor().equals(”")){?? System。out.println(book.getAuthor());???hql.a(chǎn)ppend(”andauthorlike'%"+book。getAuthor()+"%'"); ?}??Listlist=bookservice。bookSelect(hql。toString(),getPageNow(),getPageSize());??Pagerpage=newPager(this.getPageNow(),bookservice。boookSize(hql.toString()));??Maprequest=(Map)ActionContext.getContext().get("request");??request.put("list",list);??request.put("page",page);??returnSUCCESS; } publicStringaddBook()throwsException{??if(bookservice。selectBook(book。getIsbn())!=null){ ??this.setMessage("該ISBN的圖書已經(jīng)存在!");???returnSUCCESS;? } ?Bookb=newBook();??b.setIsbn(book。getIsbn()); ?b。setBookname(book.getBookname());? b.setAuthor(book。getAuthor()); ?b.setPublisher(book。getPublisher()); ?b。setPrice(book.getPrice());??b。setCnum(book.getCnum());??b。setSnum(book.getCnum());??b.setSummary(book.getSummary()); ?StringfileDir=”uploadFiles”;??if(photo!=null){???if(b.getPhoto()?。剑睿鮨l){????FiledelFile=newFile(ServletActionContext.getServletContext()??? ?。getRealPath(b.getPhoto()));???? ??}???b.setPhoto(fileDir+"\\”+this.getPhotoFileName());???InputStreamis=newFileInputStream(photo); Stringfilepath=ServletActionContext.getServletContext() ?.getRealPath(fileDir);? ?//Stringfilepath=”..\\WebRoot"+fileDir;? ?filepath+=”\\"+this。getPhotoFileName();???OutputStreamos=newFileOutputStream(filepath); ?bytebuffer[]=newbyte[1024];???intcount=0;???while((count=is.read(buffer))>0){????os.write(buffer,0,count);???}?? os.close();?is.close();?photo=null;??}??bookservice。addBook(b);??this.setMessage("添加成功!”);??returnSUCCESS;?} publicStringdeleteBook()throwsException{??if(book.getIsbn()==null||book.getIsbn()。equals(””)){???this。setMessage("請(qǐng)輸入ISBN號(hào)");? returnSUCCESS;? }elseif(bookservice.selectBook(book.getIsbn())==null){???this.setMessage("您輸入的ISBN號(hào)不存在"); ??returnSUCCESS;? }??bookservice。deleteBook(book.getIsbn());??this。setMessage("刪除成功!");??returnSUCCESS; }?publicStringupdateBook()throwsException{??Bookb=bookservice。selectBook(book.getIsbn()); ?if(b==null){???this。setMessage("不存在的ISBN號(hào)!”); ?returnSUCCESS; ?}??b.setBookname(book。getBookname());??b.setAuthor(book.getAuthor());??b.setPublisher(book.getPublisher());? b.setPrice(book.getPrice());??b.setCnum(book。getCnum());? b.setSnum(book。getSnum());??b.setSummary(book。getSummary());??StringfileDir=”uploadFiles";??if(photo!=null){?? if(b.getPhoto()!=null){? ??FiledelFile=newFile(ServletActionContext。getServletContext()?????.getRealPath(b.getPhoto()));
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技發(fā)展與學(xué)科教育的互促關(guān)系研究
- 科技教育編程教育的普及與推廣
- DB4453T 30-2025廣藿香組培苗生產(chǎn)技術(shù)規(guī)程
- DB35T 2232-2024海峽兩岸共通 火龍果生產(chǎn)技術(shù)規(guī)程
- 東莞企業(yè)勞動(dòng)合同范本
- 個(gè)人貸款房屋抵押合同模板大全
- 業(yè)務(wù)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同
- 個(gè)人車位共有權(quán)買賣合同
- 臨時(shí)倉(cāng)儲(chǔ)合同范本
- 兩人股權(quán)轉(zhuǎn)讓合同范本
- 電梯結(jié)構(gòu)與原理-第2版-全套課件
- IEC-62368-1-差異分享解讀
- SWITCH塞爾達(dá)傳說曠野之息-1.6金手指127項(xiàng)修改使用說明教程
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語(yǔ)試卷
- 節(jié)后復(fù)工培訓(xùn)內(nèi)容五篇
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GA 1051-2013槍支彈藥專用保險(xiǎn)柜
- 某水毀公路維修工程施工方案
- 家庭病房工作制度和人員職責(zé)
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
評(píng)論
0/150
提交評(píng)論