版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題目: 圖書館管理系統(tǒng) </p><p> 學(xué) 生 姓 名: 學(xué)號(hào): </p><p> 學(xué) 部 (系): </p><p> 專 業(yè)
2、 年 級(jí): </p><p> 指 導(dǎo) 教 師 職稱或?qū)W位: </p><p><b> 年 月 日</b></p><p><b> 圖書館管理系統(tǒng)</b></p><p><b> 摘 要</b>
3、</p><p> 隨著人類社會(huì)的發(fā)展,人類對(duì)知識(shí)的需求也不斷地增長(zhǎng)。在這種形勢(shì)下,書籍就漸漸地成為人們獲取并增長(zhǎng)知識(shí)的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)了一定的位置,如何科學(xué)地管理圖書館不但關(guān)系到讀者求知的方便程度,也關(guān)系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書館管理系統(tǒng)就成不可少了,本文介紹了在JAVA環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)本系統(tǒng)的詳細(xì)過(guò)程,提出實(shí)現(xiàn)圖書
4、館信息管理、資源共享的基本目標(biāo),從而推動(dòng)邁向數(shù)字化圖書館的步伐,并闡述系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和功能設(shè)計(jì),從圖書的入庫(kù)登記到查詢?yōu)g覽,從借書證發(fā)放到圖書的借閱,形成了一個(gè)整體自動(dòng)化管理模式,從軟件工程的角度進(jìn)行了科學(xué)而嚴(yán)謹(jǐn)?shù)年U述。</p><p> 【關(guān)鍵詞】圖書管理 Struts2 Hibernate MySQL數(shù)據(jù)庫(kù)</p><p><b> 前言</b></p&
5、gt;<p> 隨著電子計(jì)算機(jī)和通信技術(shù)的發(fā)展,人類已經(jīng)逐漸地進(jìn)入信息化社會(huì)。信息和材料、能源一樣成為一種社會(huì)的基本生產(chǎn)資料,在人類的社會(huì)生產(chǎn)活動(dòng)中發(fā)揮著重要的作用。同時(shí)人們對(duì)信息和數(shù)據(jù)的利用與處理也已進(jìn)入自動(dòng)化、網(wǎng)絡(luò)化和社會(huì)化的階段,因此,開發(fā)相關(guān)的管理信息系統(tǒng)已經(jīng)成為各行各業(yè)的必要和必需了,管理信息系統(tǒng)作為一門邊緣學(xué)科,集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)、現(xiàn)代通信技術(shù)和電子計(jì)算機(jī)技術(shù)于一體,可以解決企業(yè)或組織所面臨的問(wèn)題
6、,對(duì)內(nèi)來(lái)看,可以提高工作效率;對(duì)外來(lái)看,獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。</p><p> 管理信息系統(tǒng)的開發(fā)方法有生命周期法、原型法和面向?qū)ο蟮拈_發(fā)方法等。生命周期法(Life Cycle Method)是20世紀(jì)60年代發(fā)展起來(lái)的一種應(yīng)用廣泛且比較成熟的管理系統(tǒng)開發(fā)方法,它的基本思想是將系統(tǒng)的開發(fā)工作從開始到結(jié)束劃分為若干個(gè)階段,每個(gè)階段都有明確的任務(wù),而系統(tǒng)開發(fā)出來(lái)后,并不意味著生命周期的結(jié)束,而意味著根據(jù)組織的需要對(duì)系統(tǒng)
7、的修改和重建的開始;原型法(Prototyping Method)是20世紀(jì)80年代發(fā)展起來(lái)的,旨在改變生命周期法的缺點(diǎn)的一種系統(tǒng)開發(fā)方法,該法的開發(fā)思路是首先根據(jù)用戶的要求,由用戶和開發(fā)者共同確定系統(tǒng)的基本要求和主要功能,利用系統(tǒng)快速生成工具,建立一個(gè)系統(tǒng)模型,再在此基礎(chǔ)上與用戶交流,將模型不斷補(bǔ)充、修改、完善,如此反復(fù),最終直至用戶和開發(fā)者都比較滿意為止,從而形成一個(gè)相對(duì)穩(wěn)定、較為理想的管理信息系統(tǒng);面向?qū)ο螅∣bject Orie
8、nted)的開發(fā)方法于20世紀(jì)80年代開始興起的,是一種基于問(wèn)題對(duì)象的自底向上的一種系統(tǒng)開發(fā)方法,這種方法的特點(diǎn)是以對(duì)象為基礎(chǔ),對(duì)象是分析問(wèn)題和解決問(wèn)題的核心。基于以上三種方法的特點(diǎn)和各自的優(yōu)缺點(diǎn),本圖書館管理系統(tǒng)利用軟</p><p> 管理信息系統(tǒng)的開發(fā)是一個(gè)開發(fā)周期長(zhǎng)、技術(shù)要求高、影響因素多的復(fù)雜系統(tǒng)工程,因此制定一個(gè)完善、可行、合理的開發(fā)計(jì)劃,不僅是系統(tǒng)開發(fā)成功的保證,而且可以提高效率、節(jié)省時(shí)間、降低成
9、本。</p><p><b> 1.系統(tǒng)需求分析</b></p><p><b> 1.1現(xiàn)行業(yè)務(wù)描述</b></p><p> 通過(guò)調(diào)查,先畫出圖書館的組織結(jié)構(gòu)圖如下:</p><p> 通過(guò)調(diào)研了解到,該圖書館各個(gè)部門負(fù)責(zé)的主要業(yè)務(wù)如下:</p><p> ?。?
10、)采編組主要負(fù)責(zé)圖書采編工作,包括購(gòu)置新書、打印編目、增加數(shù)量。</p><p> ?。?)目錄廳主要負(fù)責(zé)借閱者查詢工作,包括可借圖書(按圖書類別、圖書名稱或圖書作者查詢);新書目錄(按圖書類別、日期查詢);借書情況(按借閱者用戶名查詢)</p><p> (3)借閱組主要負(fù)責(zé)圖書流通、查詢統(tǒng)計(jì)、借閱查詢等工作。</p><p> (4)閱覽室、工具書室主要負(fù)責(zé)
11、讀者閱覽工作,包括:閱覽各種雜志、報(bào)紙、閱覽各種工具書。</p><p> 下面繪制出圖書館流通業(yè)務(wù)中借書的流程圖:</p><p> ?。?)讀者在目錄廳查閱索引</p><p> ?。?)讀者寫出所借圖書的分類號(hào)、種次號(hào)、交給圖書管理員,并出示本人的借書證;</p><p> ?。?)圖書管理員根據(jù)圖書的分類號(hào)、種次號(hào)到書庫(kù)找書;<
12、;/p><p> ?。?)將圖書交給讀者,并根據(jù)借閱者信息和圖書信息填寫借閱記錄;</p><p> 得出該圖書館業(yè)務(wù)流程圖如下所示:</p><p><b> 1.2可行性分析</b></p><p> 通過(guò)對(duì)該圖書館的各個(gè)方面進(jìn)行了具體的了解之后,現(xiàn)對(duì)該單位開發(fā)圖書管理系統(tǒng)的可行性進(jìn)行分析。</p>
13、<p> 技術(shù)上可行:該系統(tǒng)所需硬件設(shè)備,市場(chǎng)上銷售且價(jià)格較低,甚至可以使用原有的設(shè)備,軟件上,操作系統(tǒng)采用Windows系列操作系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng)采用MySQL, 這些軟件在開發(fā)中已被大量應(yīng)用,技術(shù)上都比較成熟。因此在技術(shù)上是可行的。</p><p> 經(jīng)濟(jì)上可行:由于學(xué)校急需采用計(jì)算機(jī)來(lái)進(jìn)行圖書館的管理,因此對(duì)開發(fā)圖書管理系統(tǒng)大力支持,開發(fā)經(jīng)費(fèi)沒(méi)有問(wèn)題。</p><p&g
14、t; 管理上可行:該學(xué)校的圖書館有很多的管理體制,每位借書人均有借書證,同時(shí)圖書館還為每位借書人建立了檔案。因此管理上可行。另外,圖書館管理人員對(duì)開發(fā)該系統(tǒng)也是大力支持的,同時(shí)制定了培訓(xùn)計(jì)劃,并 進(jìn)行了實(shí)施前的物質(zhì)準(zhǔn)備和工作準(zhǔn)備。</p><p> 綜上所述,開發(fā)圖書管理系統(tǒng)在技術(shù)上、經(jīng)濟(jì)上、管理上都是可行的。</p><p><b> 2.系統(tǒng)邏輯方案</b>
15、;</p><p> 在對(duì)圖書館的管理模式和業(yè)務(wù)流程進(jìn)行認(rèn)真分析和研究的基礎(chǔ)上,最后確定了該圖書管理系統(tǒng)的邏輯模型。</p><p> 下面以數(shù)據(jù)流圖和數(shù)據(jù)字典的方式來(lái)描述新系統(tǒng)的邏輯功能。</p><p><b> 數(shù)據(jù)流圖:</b></p><p><b> 數(shù)據(jù)字典:</b></
16、p><p> 下面為借書業(yè)務(wù)流程圖中的每一部分編制數(shù)據(jù)字典。</p><p> 數(shù)據(jù)元素:每本書都有單價(jià)這個(gè)信息,其描述內(nèi)容如下:</p><p><b> 數(shù)據(jù)元素名稱:?jiǎn)蝺r(jià)</b></p><p><b> 類型:數(shù)字</b></p><p> 長(zhǎng)度:6位,其中整數(shù)
17、部分占3位,小數(shù)部分占2位</p><p><b> 數(shù)據(jù)值類型:離散</b></p><p> 取值范圍:0-999.99</p><p> 相關(guān)的數(shù)據(jù)結(jié)構(gòu):{書號(hào)+書名+出版社+類型+數(shù)量+單價(jià)+內(nèi)容摘要}</p><p> (2) 數(shù)據(jù)流。數(shù)據(jù)流“借書信息”條目如下:</p><p>
18、; 數(shù)據(jù)流名稱:借書信息</p><p><b> 說(shuō)明:借閱者的信息</b></p><p><b> 數(shù)據(jù)流來(lái)源:借閱者</b></p><p> 數(shù)據(jù)流去向:圖書管理員</p><p> 數(shù)據(jù)流組成:{分類號(hào)+種次號(hào)}</p><p> (3) 數(shù)據(jù)存儲(chǔ):數(shù)
19、據(jù)存儲(chǔ)“借閱信息”條目如下:</p><p> 數(shù)據(jù)存儲(chǔ)名稱:借閱信息</p><p> 簡(jiǎn)述:存放的是每個(gè)借閱者的借書情況</p><p><b> 輸入數(shù)據(jù):借書情況</b></p><p> 數(shù)據(jù)存儲(chǔ)組成:{借閱者用戶名+書號(hào)+借書日期}</p><p> 存儲(chǔ)方式:按借書的先后順
20、序排列</p><p> (4) 數(shù)據(jù)處理。數(shù)據(jù)處理“查詢圖書”條目如下:</p><p> 數(shù)據(jù)處理名稱:查詢圖書</p><p> 數(shù)據(jù)處理編號(hào):1.1</p><p> 簡(jiǎn)要描述:根據(jù)借閱者寫的圖書的書號(hào)和類型查詢</p><p> 輸入數(shù)據(jù)流:借閱信息</p><p> 輸出
21、數(shù)據(jù)流:查詢結(jié)果</p><p> 處理邏輯:根據(jù)借閱者寫的圖書的書號(hào)和類型檢索相應(yīng)的圖書信息。</p><p> (5) 外部實(shí)體。外部實(shí)體“圖書管理員”的條目如下:</p><p> 外部實(shí)體名稱:圖書管理員</p><p> 輸入數(shù)據(jù)流:借閱信息、借書證號(hào)、查詢結(jié)果</p><p> 輸出數(shù)據(jù)流:借閱信
22、息</p><p><b> 數(shù)目:3人</b></p><p> 3.系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</p><p> 3.1軟件模塊結(jié)構(gòu)設(shè)計(jì)</p><p> 系統(tǒng)方案確定。通過(guò)對(duì)系統(tǒng)調(diào)研與分析,系統(tǒng)主要應(yīng)完成的功能如下:書庫(kù)信息管理、讀者檔案管理、借閱管理、還書管理、圖書檢索、系統(tǒng)維護(hù)。</p><p
23、> 軟件結(jié)構(gòu)設(shè)計(jì)。圖書館管理系統(tǒng)包含圖書采編、讀者管理、流通、查詢等功能。該系統(tǒng)執(zhí)行時(shí),先輸入數(shù)據(jù),然后根據(jù)輸入的數(shù)據(jù)選擇執(zhí)行路徑;購(gòu)入圖書進(jìn)行登記、編目調(diào)用圖書采編功能,借書、還書調(diào)用功能,查詢調(diào)用查詢功能。圖書館管理系統(tǒng)屬于事務(wù)型系統(tǒng),其系統(tǒng)示意圖如下圖所示:</p><p> 圖書館管理系統(tǒng)示意圖</p><p> 系統(tǒng)結(jié)構(gòu)圖示意如下:</p><p&
24、gt; 圖書館管理系統(tǒng)結(jié)構(gòu)圖</p><p><b> 系統(tǒng)功能圖如下:</b></p><p><b> 3.2數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 本系統(tǒng)數(shù)據(jù)庫(kù)采用了MySQL數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中建有3張表,其名稱及功能如下:</p><p> 本系統(tǒng)涉及到的實(shí)體:</p>
25、<p> (1)本系統(tǒng)中所涉及到的主要實(shí)體及其屬性有:</p><p> Book(圖書管理)表:{書名,書號(hào), ,出版社,類型,價(jià)格,操作員}</p><p> admin(圖書管理員)表:{用戶名,密碼 }</p><p> borrow (借閱)表:{借閱用戶名,書名,借書日期}</p><p> (2)本系統(tǒng)的實(shí)體
26、----聯(lián)系(E-R)圖</p><p> 為了使E-R圖表示得更加清晰,現(xiàn)將E-R圖分成實(shí)體及其屬性圖和實(shí)體及其聯(lián)系圖。分別如下圖所示:</p><p> 各表的物理結(jié)構(gòu)如下:</p><p> Book(圖書管理)表:</p><p> Admin(圖書管理員)表:</p><p> Borrow(借閱)
27、表:</p><p><b> 4.系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> 整個(gè)系統(tǒng)主要有登陸界面,圖書管理員界面和借閱者界面。圖書管理員界面包括圖書的添加、查詢、刪除和修改,還有借閱信息的添加、刪除,借閱者界面主要有圖書的查詢和對(duì)借閱信息的查詢。</p><p><b> 4.1登陸頁(yè)面設(shè)計(jì)</b></p&g
28、t;<p> 登陸界面主要有username、password 2個(gè)輸入文本框和一個(gè)用戶權(quán)限的選擇框。</p><p> 在JSP頁(yè)面中username和password分別用一個(gè)textfield來(lái)接收用戶輸入的數(shù)據(jù),而用戶權(quán)限則可以用一個(gè)select穿件一個(gè)選擇框讓用戶根據(jù)自己情況選擇。</p><p> <td>用戶名</td></p
29、><p> <td><s:textfield name="username" size="20"/></td></p><p><b> </tr></b></p><p><b> <tr></b></p>
30、<p> <td>密 碼</td></p><p> <td><s:password name="password" size="20"/></td></p><p><b> </tr></b>&
31、lt;/p><p><b> <tr></b></p><p> <td>權(quán) 限</td></p><p> <td><select name="role"></p><p> <option
32、selected="selected"></p><p><b> 借閱者</b></p><p><b> </option></b></p><p><b> <option></b></p><p><b>
33、; 圖書管理員</b></p><p><b> </option></b></p><p> 頁(yè)面接收到的數(shù)據(jù)會(huì)傳送到對(duì)應(yīng)的indexAction有這個(gè)Action保存然后傳送給相應(yīng)的IfAdmin方法,在Action中首先會(huì)判斷傳進(jìn)來(lái)的用戶權(quán)限這個(gè)數(shù)據(jù),如果用戶選擇的是圖書管理員就會(huì)把username、password傳入方法IfAd
34、min中,這個(gè)方法會(huì)去連接數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中匹配。如果匹配成功就會(huì)跳轉(zhuǎn)到admin.jsp這個(gè)頁(yè)面,如果沒(méi)有就會(huì)在頁(yè)面中提示錯(cuò)誤;如果用戶選擇的是借閱者權(quán)限,頁(yè)面就會(huì)跳轉(zhuǎn)到borrow.jsp這個(gè)頁(yè)面。</p><p> AdminService service=new AdminServiceImpl();</p><p> if(role.equals("圖書管理員&qu
35、ot;))</p><p><b> {</b></p><p> if(!service.IfAdmin(username, password))</p><p><b> {</b></p><p> return "admin.jsp";</p>&l
36、t;p><b> }</b></p><p> this.addActionError("用戶名或密碼錯(cuò)誤");</p><p><b> }</b></p><p> if(role.equals("借閱者"))</p><p><b&g
37、t; {</b></p><p> return "borrower.jsp";</p><p><b> } </b></p><p> 4.2 圖書管理員頁(yè)面設(shè)計(jì)</p><p> 用戶輸入正確的密碼選擇對(duì)應(yīng)的權(quán)限判斷成功之后就會(huì)跳轉(zhuǎn)到這個(gè)頁(yè)面,這個(gè)頁(yè)面有添加圖書、查詢/刪除
38、/修改圖書、添加借閱信息、查詢/刪除借閱信息,還有退出系統(tǒng)這幾個(gè)標(biāo)簽。</p><p><b> 4.2.1添加圖書</b></p><p> 添加圖書頁(yè)面就在JSP頁(yè)面中定義幾個(gè)textfield分別來(lái)接收用戶輸入的bookname、ISBN、type、cbs、price、count這幾個(gè)值</p><p> <s:form ac
39、tion="addBookAction" method="post" ></p><p><b> <table></b></p><p><b> <tr></b></p><p> <td >書名:</td></p
40、><p> <td><s:textfield name="bookname" /></td></p><p><b> </tr></b></p><p><b> <tr></b></p><p> <td&
41、gt;ISBN:</td></p><p> <td><s:textfield name="ISBN" /></td></p><p><b> </tr></b></p><p><b> <tr></b></
42、p><p> <td>類型:</td></p><p> <td><s:textfield name="type" /></td></p><p><b> </tr></b></p><p><b> &l
43、t;tr></b></p><p> <td>出版社:</td></p><p> <td><s:textfield name="cbs" /></td></p><p> 這幾個(gè)值會(huì)傳給addBookAction,Action會(huì)保存這幾個(gè)值,然后將這些保
44、存的值傳到方法service.addBook這個(gè)方法中,這個(gè)方法會(huì)將這些值保存到數(shù)據(jù)庫(kù)中,更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。</p><p> public String execute()throws Exception{</p><p> Book book=new Book();</p><p> book.setBookname(bookname);</p&g
45、t;<p> book.setCbs(cbs);</p><p> book.setCount(count);</p><p> book.setType(type);</p><p> book.setPrice(price);</p><p> book.setISBN(ISBN);</p><
46、p> AdminService service=new AdminServiceImpl();</p><p> service.addBook(book); </p><p> 4.2.2 查詢/修改/刪除圖書</p><p> 查詢的JSP頁(yè)面有一個(gè)文本輸入框和4個(gè)按鈕,4個(gè)按鈕分別是按書名、按書號(hào)、按類型和顯示所有。JSP頁(yè)面中會(huì)定義一個(gè)text
47、field名為condition,就是說(shuō)textfield接收到的值就是condition的值,這個(gè)值會(huì)傳送到queryBookAction中,Action會(huì)創(chuàng)建一個(gè)list,condition和按鈕的值會(huì)存入這個(gè)list,然后傳到service.queryBookList這個(gè)方法中。</p><p> System.out.println(condition);</p><p> A
48、dminService service=new AdminServiceImpl();</p><p> ArrayList list=service.queryBookList(condition,howsearch);</p><p> Condition和按鈕的值傳進(jìn)這個(gè)方法之后,方法會(huì)首先判斷按鈕的值,根據(jù)不同的值,方法會(huì)創(chuàng)建不同的查詢語(yǔ)句。然后根據(jù)condition的值到數(shù)據(jù)
49、庫(kù)中查詢相匹配的數(shù)據(jù)。</p><p> if (howsearch.equals("按書號(hào)"))</p><p><b> {</b></p><p> Session session=factory.openSession();</p><p> session.beginTransact
50、ion();</p><p> Query query=session.createQuery("from Book where ISBN=?").setString(0, condition);</p><p> session.beginTransaction().commit();</p><p> list=(ArrayList)q
51、uery.list();</p><p> session.close();</p><p> 查詢之后,數(shù)據(jù)會(huì)保存到一個(gè)list當(dāng)中,然后返回到queryBookAction中,然后Action把得到的值傳送給querybookresult.jsp中。</p><p> Map request=(Map)ActionContext.getContext().
52、get("request");</p><p> request.put("ls", list);</p><p> JSP得到這個(gè)list之后,會(huì)將其中的值分別傳給與其匹配的類。在頁(yè)面中顯示出來(lái)。</p><p> <s:iterator value="#request.ls" id=&qu
53、ot;book" status="status" ></p><p><b> <tr></b></p><p> <td><input type="checkbox" name="check" value="${book.boodid}"
54、; </p><p> <td><s:property value="#book.bookname" /></td></p><p> <td><s:property value="#book.ISBN" /></td></p><p> <t
55、d><s:property value="#book.type" /></td></p><p> <td><s:property value="#book.cbs" /></td></p><p> <td><s:property value="#bo
56、ok.price" /></td></p><p> <td><s:property value="#book.count" /></td></p><p> 在顯示結(jié)果頁(yè)面中有查詢到的圖書信息,還有2個(gè)修改和刪除按鈕以及一個(gè)復(fù)選框。這樣就可以對(duì)查詢到的圖書信息進(jìn)行相關(guān)的處理。</p>
57、<p> 前面的復(fù)選框?qū)?yīng)的是數(shù)據(jù)庫(kù)中的boodid的值,boodid是插入圖書信息數(shù)據(jù)庫(kù)自動(dòng)添加的一個(gè)值,在上面的查詢結(jié)果傳到list的時(shí)候,數(shù)據(jù)庫(kù)中的boodid也會(huì)傳出來(lái)給JSP頁(yè)面中的checkbox接收。選中復(fù)選框就是選中了一個(gè)boodid,點(diǎn)擊刪除之后JSP頁(yè)面會(huì)就將boodid和按鈕的值傳給dealqueryBookAction中,在這個(gè)Action中他先判斷按鈕的值,如果是刪除boodid的值就會(huì)傳到serv
58、ice.deletebook這個(gè)方法中。</p><p> AdminService service= new AdminServiceImpl();</p><p> if(submit.equals("刪除")){</p><p> service.deletebook(id);</p><p><b>
59、; }</b></p><p> 在這個(gè)方法中會(huì)創(chuàng)建一條刪除語(yǔ)句。刪除的對(duì)象就是與boodid相對(duì)應(yīng)的那條數(shù)據(jù)庫(kù)數(shù)據(jù)。因?yàn)榭紤]到有時(shí)會(huì)不只刪除一條圖書信息,可以選擇多個(gè)boodid所以用一個(gè)for循環(huán)。</p><p> for(int i=0;i<id.length;i++){</p><p> session.createQuery(&
60、quot;delete Book where boodid=?").setString(0,id[i]).executeUpdate();</p><p><b> }</b></p><p> 如果用戶選擇的是修改按鈕,dealqueryBookAction就會(huì)先得到boodid的值然后在將剛才查詢到圖書信息的值取過(guò)來(lái)再將它們顯示到update.jsp
61、 這個(gè)頁(yè)面,這樣用戶就可以直接在原來(lái)的信息上修改。</p><p> if(submit.equals("修改")){</p><p> ArrayList ls=service.querybookid(id);</p><p> request.put("ls",ls); </p><p>
62、Book b=(Book) ls.get(0);</p><p> return "update.jsp";</p><p> 用戶要更改的信息改好之后點(diǎn)擊保存,update.jsp頁(yè)面就會(huì)就這些得到的值傳給updatebookAction,由Action保存到一個(gè)list然后傳給方法service.updatebook,由這個(gè)方法連接數(shù)據(jù)庫(kù)并把list當(dāng)中的值分別
63、保存到數(shù)據(jù)庫(kù)中,更新數(shù)據(jù)庫(kù)的數(shù)據(jù)。</p><p> Session session=factory.openSession();</p><p> session.beginTransaction();</p><p> Book book=(Book)session.get(Book.class, (Serializable) arr.get(6));&l
64、t;/p><p> book.setBookname((String)arr.get(0));</p><p> book.setISBN((String)arr.get(1));</p><p> book.setType((String)arr.get(2));</p><p> book.setCbs((String)arr.get
65、(3));</p><p> book.setPrice((Integer)arr.get(4));</p><p> book.setCount((Integer)arr.get(5));</p><p> session.update(book);</p><p> 數(shù)據(jù)庫(kù)成功更新數(shù)據(jù)之后就會(huì)回到Action,Action會(huì)返回一
66、個(gè)更新成功的信息顯示在頁(yè)面上。</p><p> 4.2.3添加借閱信息</p><p> 當(dāng)借閱者來(lái)借書的時(shí)候就需要添加借閱信息。添加借閱信息的頁(yè)面比較簡(jiǎn)單。因?yàn)橹粚?shí)現(xiàn)了相當(dāng)簡(jiǎn)單的功能就沒(méi)有那么多的數(shù)據(jù)要填寫。只有2個(gè)文本輸入框。一個(gè)文本輸入框填寫借閱者的用戶名一個(gè)文本框填寫借閱者所借的書名,借書時(shí)間取系統(tǒng)當(dāng)時(shí)時(shí)間。</p><p> 圖書管理員在JSP頁(yè)面
67、輸入借閱的信息,這些數(shù)據(jù)傳送給addBorrowInfoAction,Action保存?zhèn)鬟^(guò)來(lái)的數(shù)據(jù)然后傳給方法servoce.addBorrowInfo,這個(gè)方法會(huì)連接數(shù)據(jù)庫(kù),并把得到的數(shù)據(jù)添加進(jìn)去。</p><p> BorrowInfo borrowinfo=new BorrowInfo();</p><p> borrowinfo.setBookname(bookname);&l
68、t;/p><p> borrowinfo.setBorrower(username);</p><p> borrowtime=new Date();</p><p> borrowinfo.setBorrowtime(borrowtime);</p><p> AdminService service=new AdminServiceI
69、mpl();</p><p> service.addBorrowInfo(borrowinfo);</p><p> 4.2.4查詢/刪除借閱信息</p><p> 查詢借閱信息的界面與查詢圖書的界面大同小異,還是用一個(gè)textfield文本輸入框來(lái)接收輸入的信息,定義名為condition。JSP頁(yè)面將condition的值和按鈕的值傳給QueryBorr
70、owInfoAction,Action保存的值傳給service.queryBorrowList這個(gè)方法</p><p> UserService service =new UserServiceImpl();</p><p> ArrayLis list=service.queryBorrowList(condition, howsearch);</p><p&g
71、t; service.queryBorrowList得到傳進(jìn)來(lái)的數(shù)據(jù)時(shí),判斷按鈕的值是按什么查詢,然后根據(jù)不同的按鈕創(chuàng)建不同的查詢語(yǔ)句。最后根據(jù)condition的值進(jìn)行查找。</p><p> if(!howearch.equals("顯示所有"))</p><p><b> {</b></p><p> if (
72、howearch.equals("按書名")) {</p><p> Session session = factory.openSession();</p><p> session.beginTransaction();</p><p> Query query=session.createQuery("from Borrow
73、Info where bookname=?").setString(0, condition);</p><p> session.beginTransaction().commit();</p><p> list= (ArrayList) query.list();</p><p> session.close();</p><
74、;p><b> }</b></p><p><b> }</b></p><p> 查詢之后還是將查詢到的結(jié)果放在一個(gè)list當(dāng)中,然后將這個(gè)list返回。list就會(huì)傳到QueryBorrowInfoAction,Action得到這個(gè)list先判斷這個(gè)list是否為空,如果為空則在頁(yè)面上顯示空記錄。</p><p
75、> if(list.isEmpty()){</p><p> this.addActionError("空記錄"); </p><p> return INPUT;</p><p><b> }</b></p><p> 如果list不為Action就會(huì)將這個(gè)list傳給頁(yè)面請(qǐng)求。&
76、lt;/p><p> Map request = (Map)ActionContext.getContext().get("request"); </p><p> request.put("ls", list);</p><p> queryborrowinforesult.jsp就會(huì)請(qǐng)求得到list,然后list就
77、傳進(jìn)了queryborrowinforesult.jsp。JSP頁(yè)面就會(huì)將這些值取出來(lái)放進(jìn)與其對(duì)應(yīng)的類中。</p><p> <s:iterator value="#request.ls" status="status" ></p><p><b> <tr></b></p>&l
78、t;p> <td><input type="checkbox" name="check" value="${id}" /></td></p><p> <td><s:property value="borrower" /></td></p>
79、<p> <td><s:property value="bookname" /></td></p><p> <td><s:property value="borrowtime" /></td></p><p><b> </tr><
80、/b></p><p> 查詢結(jié)果在頁(yè)面中顯示出來(lái),如果借閱者將書已經(jīng)還回的話就需要將這條借閱信息刪除,刪除還是與刪除圖書差不多。首先要選定要?jiǎng)h除的借閱信息的復(fù)選框然后點(diǎn)擊刪除。</p><p> 這個(gè)復(fù)選框?qū)?yīng)的是數(shù)據(jù)庫(kù)中borrow表中的id值,它是每次添加借閱信息數(shù)據(jù)庫(kù)自動(dòng)添加的一個(gè)值。查詢借閱信息的時(shí)候系統(tǒng)也會(huì)自動(dòng)將數(shù)據(jù)庫(kù)中的這個(gè)id取出來(lái)放到list當(dāng)中。現(xiàn)在JSP頁(yè)面
81、會(huì)將這個(gè)id值與按鈕的值一起傳給dealBorrowInfoAction,Action在將這個(gè)id值傳進(jìn)service.deleteborrowinfo這個(gè)方法。</p><p> AdminService service= new AdminServiceImpl();</p><p> if(submit.equals("刪除")){</p>&l
82、t;p> service.deleteborrowinfo(id);</p><p><b> }</b></p><p> Service.deleteborrowinfo這個(gè)方法得到id之后先進(jìn)行一個(gè)for循環(huán),然后創(chuàng)建一條刪除語(yǔ)句,刪除borrow表中與這個(gè)id相同的那條數(shù)據(jù)。</p><p> Session sessio
83、n =factory.openSession();</p><p> session.beginTransaction();</p><p> for(int i=0;i<id.length;i++){</p><p> session.createQuery("delete BorrowInfo where id=?").setSt
84、ring(0,id[i]).executeUpdate();</p><p><b> }</b></p><p> session.beginTransaction().commit();</p><p> session.close();</p><p> 4.3借閱者頁(yè)面設(shè)計(jì)</p><
85、p> 借閱者頁(yè)面只有查詢圖書、查詢借閱信息和退出系統(tǒng)幾個(gè)標(biāo)簽。</p><p> 借閱者不能有太多的權(quán)限,只能查找一下圖書然后能根據(jù)自己的用戶名查詢一下自己的借閱信息。</p><p> 查詢圖書頁(yè)面只有3個(gè)submit按鈕和一個(gè)name為condition的textfield文本輸入框。JSP頁(yè)面將接收到的數(shù)據(jù)傳送給queryBookAction,queryBookActio
86、n用一個(gè)list保存condition和submit的值,然后傳給service.queryBookList這個(gè)方法,在這個(gè)方法中先判斷submit的值,根據(jù)submit的值的不同,方法將創(chuàng)建不同的查詢語(yǔ)句,在配合condition的值就可以完成查詢。</p><p> 借閱信息查詢頁(yè)面只有name為condition的textfield文本輸入框和一個(gè)submit按鈕。Textfield提示借閱者輸入自己借書
87、的用戶名,然后就將取得的值傳送給borrowerqueryborrowinfoAction,Action在將得到的condition值傳給service.queryborrowinfo。這個(gè)方法直接創(chuàng)建一條查詢語(yǔ)句,查詢borrowinfo表中borrower與condition的值相匹配的那條數(shù)據(jù)。</p><p> ArrayList list=new ArrayList();</p><
88、;p> Session session=factory.openSession();</p><p> session.beginTransaction();</p><p> Query query=session.createQuery("from BorrowInfo where borrower=?").setString(0,username);&
89、lt;/p><p> session.beginTransaction().commit();</p><p> list=(ArrayList) query.list();</p><p> session.close();</p><p> 然后將得到的結(jié)果存入一個(gè)list當(dāng)中返回出來(lái),Action就會(huì)的到返回的list,然后在Act
90、ion中進(jìn)行判斷,如果list為空就提示空記錄,如果list不為空,就將list傳給JSP頁(yè)面,在頁(yè)面中將結(jié)果顯示出來(lái)。</p><p> 點(diǎn)擊退出系統(tǒng)的話,頁(yè)面就會(huì)跳轉(zhuǎn)到登陸界面。</p><p><b> 結(jié)束語(yǔ)</b></p><p> 在本系統(tǒng)的開發(fā)過(guò)程中,由于本人是初次開發(fā)軟件,在知識(shí)、經(jīng)驗(yàn)方面都存在著不足。另外,在整個(gè)開發(fā)的過(guò)
91、程中,時(shí)間也比較倉(cāng)促。因此,該系統(tǒng)必然會(huì)存在一些缺陷和不足。因?yàn)閷?duì)圖書管理的整個(gè)流程不夠熟悉,在需求分析時(shí)未能做到完全滿足用戶的需求。盡管該圖書管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫(kù)管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點(diǎn)是圖書管理系統(tǒng)所必需的。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 鄔繼成.J2
92、EE開源編程精要15講:整合Eclipse、Struts、Hibernate和Spring的Java Web 開發(fā).北京:電子工業(yè)出版社,2008.1</p><p> [2] 劉寶林.Java程序設(shè)計(jì)與案例.北京:高等教育出版社,2004.11</p><p> [3] 牛麗平.UML 面向?qū)ο笤O(shè)計(jì)與分析基礎(chǔ)教程.北京:清華大學(xué)出版社, 2007.7</p><
93、;p> [4] 張海藩,倪寧.軟件工程.北京:人民郵電出版社,2010.2</p><p> [5] 武劍潔,陳傳波,肖來(lái)元.軟件測(cè)試技術(shù).武漢:華中科技大學(xué)出版社,2008.10</p><p> [6] 嚴(yán)耀偉,王芳.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)及應(yīng)用.北京:人民郵電出版社,2009.9</p><p> [7] 王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論.北京:高等教務(wù)出版
94、社,2006.5</p><p> [8] 徐國(guó)平,武裝.網(wǎng)頁(yè)設(shè)計(jì)與制作教程.北京:高等教育出版社,2008.6 </p><p> [9] 彭作民,高茜.ASP.NET 3.5.北京.電子工業(yè)出版社,2009.9</p><p> [10] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).北京.清華大學(xué)出版社,2007</p><p><b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)畢業(yè)論文
- 圖書館管理系統(tǒng)畢業(yè)論文
- 圖書館管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——圖書館管理系統(tǒng)
- 畢業(yè)論文--圖書館借閱管理系統(tǒng)
- 圖書館管理系統(tǒng)論文畢業(yè)論文
- 畢業(yè)論文--圖書館借閱管理系統(tǒng)
- 畢業(yè)論文范文——圖書館管理系統(tǒng)
- 學(xué)校圖書館管理系統(tǒng)畢業(yè)論文
- 圖書館集成系統(tǒng)---畢業(yè)論文
- 圖書館集成系統(tǒng)---畢業(yè)論文
- 圖書館管理信息系統(tǒng)畢業(yè)論文
- 圖書館管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文-----基于web的圖書館管理系統(tǒng)
- 基于jsp的圖書館管理系統(tǒng)畢業(yè)論文
- 圖書館管理系統(tǒng)的開發(fā)設(shè)計(jì)畢業(yè)論文
- 圖書館管理信息系統(tǒng)畢業(yè)論文
- 圖書館管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 圖書館管理系統(tǒng)的開發(fā)設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論