2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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>密&nbsp;&nbsp;碼</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)&nbsp;&nbsp;限</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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論