圖書館管理系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  題目: 圖書館管理系統(tǒng) </p><p>  學(xué) 生 姓 名: 學(xué)號: </p><p>  學(xué) 部 (系): </p><p>  專 業(yè)

2、 年 級: </p><p>  指 導(dǎo) 教 師 職稱或?qū)W位: </p><p><b>  年 月 日</b></p><p><b>  圖書館管理系統(tǒng)</b></p><p><b>  摘 要</b>

3、</p><p>  隨著人類社會的發(fā)展,人類對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)了一定的位置,如何科學(xué)地管理圖書館不但關(guān)系到讀者求知的方便程度,也關(guān)系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書館管理系統(tǒng)就成不可少了,本文介紹了在JAVA環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)本系統(tǒng)的詳細(xì)過程,提出實現(xiàn)圖書

4、館信息管理、資源共享的基本目標(biāo),從而推動邁向數(shù)字化圖書館的步伐,并闡述系統(tǒng)結(jié)構(gòu)設(shè)計和功能設(shè)計,從圖書的入庫登記到查詢?yōu)g覽,從借書證發(fā)放到圖書的借閱,形成了一個整體自動化管理模式,從軟件工程的角度進(jìn)行了科學(xué)而嚴(yán)謹(jǐn)?shù)年U述。</p><p>  【關(guān)鍵詞】圖書管理 Struts2 Hibernate MySQL數(shù)據(jù)庫</p><p><b>  前言</b></p&

5、gt;<p>  隨著電子計算機(jī)和通信技術(shù)的發(fā)展,人類已經(jīng)逐漸地進(jìn)入信息化社會。信息和材料、能源一樣成為一種社會的基本生產(chǎn)資料,在人類的社會生產(chǎn)活動中發(fā)揮著重要的作用。同時人們對信息和數(shù)據(jù)的利用與處理也已進(jìn)入自動化、網(wǎng)絡(luò)化和社會化的階段,因此,開發(fā)相關(guān)的管理信息系統(tǒng)已經(jīng)成為各行各業(yè)的必要和必需了,管理信息系統(tǒng)作為一門邊緣學(xué)科,集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)、現(xiàn)代通信技術(shù)和電子計算機(jī)技術(shù)于一體,可以解決企業(yè)或組織所面臨的問題

6、,對內(nèi)來看,可以提高工作效率;對外來看,獲得競爭優(yōu)勢。</p><p>  管理信息系統(tǒng)的開發(fā)方法有生命周期法、原型法和面向?qū)ο蟮拈_發(fā)方法等。生命周期法(Life Cycle Method)是20世紀(jì)60年代發(fā)展起來的一種應(yīng)用廣泛且比較成熟的管理系統(tǒng)開發(fā)方法,它的基本思想是將系統(tǒng)的開發(fā)工作從開始到結(jié)束劃分為若干個階段,每個階段都有明確的任務(wù),而系統(tǒng)開發(fā)出來后,并不意味著生命周期的結(jié)束,而意味著根據(jù)組織的需要對系統(tǒng)

7、的修改和重建的開始;原型法(Prototyping Method)是20世紀(jì)80年代發(fā)展起來的,旨在改變生命周期法的缺點的一種系統(tǒng)開發(fā)方法,該法的開發(fā)思路是首先根據(jù)用戶的要求,由用戶和開發(fā)者共同確定系統(tǒng)的基本要求和主要功能,利用系統(tǒng)快速生成工具,建立一個系統(tǒng)模型,再在此基礎(chǔ)上與用戶交流,將模型不斷補(bǔ)充、修改、完善,如此反復(fù),最終直至用戶和開發(fā)者都比較滿意為止,從而形成一個相對穩(wěn)定、較為理想的管理信息系統(tǒng);面向?qū)ο螅∣bject Orie

8、nted)的開發(fā)方法于20世紀(jì)80年代開始興起的,是一種基于問題對象的自底向上的一種系統(tǒng)開發(fā)方法,這種方法的特點是以對象為基礎(chǔ),對象是分析問題和解決問題的核心?;谝陨先N方法的特點和各自的優(yōu)缺點,本圖書館管理系統(tǒng)利用軟</p><p>  管理信息系統(tǒng)的開發(fā)是一個開發(fā)周期長、技術(shù)要求高、影響因素多的復(fù)雜系統(tǒng)工程,因此制定一個完善、可行、合理的開發(fā)計劃,不僅是系統(tǒng)開發(fā)成功的保證,而且可以提高效率、節(jié)省時間、降低成

9、本。</p><p><b>  1.系統(tǒng)需求分析</b></p><p><b>  1.1現(xiàn)行業(yè)務(wù)描述</b></p><p>  通過調(diào)查,先畫出圖書館的組織結(jié)構(gòu)圖如下:</p><p>  通過調(diào)研了解到,該圖書館各個部門負(fù)責(zé)的主要業(yè)務(wù)如下:</p><p> ?。?

10、)采編組主要負(fù)責(zé)圖書采編工作,包括購置新書、打印編目、增加數(shù)量。</p><p> ?。?)目錄廳主要負(fù)責(zé)借閱者查詢工作,包括可借圖書(按圖書類別、圖書名稱或圖書作者查詢);新書目錄(按圖書類別、日期查詢);借書情況(按借閱者用戶名查詢)</p><p> ?。?)借閱組主要負(fù)責(zé)圖書流通、查詢統(tǒng)計、借閱查詢等工作。</p><p> ?。?)閱覽室、工具書室主要負(fù)責(zé)

11、讀者閱覽工作,包括:閱覽各種雜志、報紙、閱覽各種工具書。</p><p>  下面繪制出圖書館流通業(yè)務(wù)中借書的流程圖:</p><p> ?。?)讀者在目錄廳查閱索引</p><p>  (2)讀者寫出所借圖書的分類號、種次號、交給圖書管理員,并出示本人的借書證;</p><p> ?。?)圖書管理員根據(jù)圖書的分類號、種次號到書庫找書;<

12、;/p><p> ?。?)將圖書交給讀者,并根據(jù)借閱者信息和圖書信息填寫借閱記錄;</p><p>  得出該圖書館業(yè)務(wù)流程圖如下所示:</p><p><b>  1.2可行性分析</b></p><p>  通過對該圖書館的各個方面進(jìn)行了具體的了解之后,現(xiàn)對該單位開發(fā)圖書管理系統(tǒng)的可行性進(jìn)行分析。</p>

13、<p>  技術(shù)上可行:該系統(tǒng)所需硬件設(shè)備,市場上銷售且價格較低,甚至可以使用原有的設(shè)備,軟件上,操作系統(tǒng)采用Windows系列操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)采用MySQL, 這些軟件在開發(fā)中已被大量應(yīng)用,技術(shù)上都比較成熟。因此在技術(shù)上是可行的。</p><p>  經(jīng)濟(jì)上可行:由于學(xué)校急需采用計算機(jī)來進(jìn)行圖書館的管理,因此對開發(fā)圖書管理系統(tǒng)大力支持,開發(fā)經(jīng)費沒有問題。</p><p&g

14、t;  管理上可行:該學(xué)校的圖書館有很多的管理體制,每位借書人均有借書證,同時圖書館還為每位借書人建立了檔案。因此管理上可行。另外,圖書館管理人員對開發(fā)該系統(tǒng)也是大力支持的,同時制定了培訓(xùn)計劃,并 進(jìn)行了實施前的物質(zhì)準(zhǔn)備和工作準(zhǔn)備。</p><p>  綜上所述,開發(fā)圖書管理系統(tǒng)在技術(shù)上、經(jīng)濟(jì)上、管理上都是可行的。</p><p><b>  2.系統(tǒng)邏輯方案</b>

15、;</p><p>  在對圖書館的管理模式和業(yè)務(wù)流程進(jìn)行認(rèn)真分析和研究的基礎(chǔ)上,最后確定了該圖書管理系統(tǒng)的邏輯模型。</p><p>  下面以數(shù)據(jù)流圖和數(shù)據(jù)字典的方式來描述新系統(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ù)元素:每本書都有單價這個信息,其描述內(nèi)容如下:</p><p><b>  數(shù)據(jù)元素名稱:單價</b></p><p><b>  類型:數(shù)字</b></p><p>  長度: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):{書號+書名+出版社+類型+數(shù)量+單價+內(nèi)容摘要}</p><p>  (2) 數(shù)據(jù)流。數(shù)據(jù)流“借書信息”條目如下:</p><p>

18、;  數(shù)據(jù)流名稱:借書信息</p><p><b>  說明:借閱者的信息</b></p><p><b>  數(shù)據(jù)流來源:借閱者</b></p><p>  數(shù)據(jù)流去向:圖書管理員</p><p>  數(shù)據(jù)流組成:{分類號+種次號}</p><p>  (3) 數(shù)據(jù)存儲:數(shù)

19、據(jù)存儲“借閱信息”條目如下:</p><p>  數(shù)據(jù)存儲名稱:借閱信息</p><p>  簡述:存放的是每個借閱者的借書情況</p><p><b>  輸入數(shù)據(jù):借書情況</b></p><p>  數(shù)據(jù)存儲組成:{借閱者用戶名+書號+借書日期}</p><p>  存儲方式:按借書的先后順

20、序排列</p><p>  (4) 數(shù)據(jù)處理。數(shù)據(jù)處理“查詢圖書”條目如下:</p><p>  數(shù)據(jù)處理名稱:查詢圖書</p><p>  數(shù)據(jù)處理編號:1.1</p><p>  簡要描述:根據(jù)借閱者寫的圖書的書號和類型查詢</p><p>  輸入數(shù)據(jù)流:借閱信息</p><p>  輸出

21、數(shù)據(jù)流:查詢結(jié)果</p><p>  處理邏輯:根據(jù)借閱者寫的圖書的書號和類型檢索相應(yīng)的圖書信息。</p><p>  (5) 外部實體。外部實體“圖書管理員”的條目如下:</p><p>  外部實體名稱:圖書管理員</p><p>  輸入數(shù)據(jù)流:借閱信息、借書證號、查詢結(jié)果</p><p>  輸出數(shù)據(jù)流:借閱信

22、息</p><p><b>  數(shù)目:3人</b></p><p>  3.系統(tǒng)總體結(jié)構(gòu)設(shè)計</p><p>  3.1軟件模塊結(jié)構(gòu)設(shè)計</p><p>  系統(tǒng)方案確定。通過對系統(tǒng)調(diào)研與分析,系統(tǒng)主要應(yīng)完成的功能如下:書庫信息管理、讀者檔案管理、借閱管理、還書管理、圖書檢索、系統(tǒng)維護(hù)。</p><p

23、>  軟件結(jié)構(gòu)設(shè)計。圖書館管理系統(tǒng)包含圖書采編、讀者管理、流通、查詢等功能。該系統(tǒng)執(zhí)行時,先輸入數(shù)據(jù),然后根據(jù)輸入的數(shù)據(jù)選擇執(zhí)行路徑;購入圖書進(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ù)庫設(shè)計</b></p><p>  本系統(tǒng)數(shù)據(jù)庫采用了MySQL數(shù)據(jù)庫。數(shù)據(jù)庫中建有3張表,其名稱及功能如下:</p><p>  本系統(tǒng)涉及到的實體:</p>

25、<p>  (1)本系統(tǒng)中所涉及到的主要實體及其屬性有:</p><p>  Book(圖書管理)表:{書名,書號, ,出版社,類型,價格,操作員}</p><p>  admin(圖書管理員)表:{用戶名,密碼 }</p><p>  borrow (借閱)表:{借閱用戶名,書名,借書日期}</p><p>  (2)本系統(tǒng)的實體

26、----聯(lián)系(E-R)圖</p><p>  為了使E-R圖表示得更加清晰,現(xiàn)將E-R圖分成實體及其屬性圖和實體及其聯(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è)計</b></p><p>  整個系統(tǒng)主要有登陸界面,圖書管理員界面和借閱者界面。圖書管理員界面包括圖書的添加、查詢、刪除和修改,還有借閱信息的添加、刪除,借閱者界面主要有圖書的查詢和對借閱信息的查詢。</p><p><b>  4.1登陸頁面設(shè)計</b></p&g

28、t;<p>  登陸界面主要有username、password 2個輸入文本框和一個用戶權(quán)限的選擇框。</p><p>  在JSP頁面中username和password分別用一個textfield來接收用戶輸入的數(shù)據(jù),而用戶權(quán)限則可以用一個select穿件一個選擇框讓用戶根據(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>  頁面接收到的數(shù)據(jù)會傳送到對應(yīng)的indexAction有這個Action保存然后傳送給相應(yīng)的IfAdmin方法,在Action中首先會判斷傳進(jìn)來的用戶權(quán)限這個數(shù)據(jù),如果用戶選擇的是圖書管理員就會把username、password傳入方法IfAd

34、min中,這個方法會去連接數(shù)據(jù)庫,在數(shù)據(jù)庫中匹配。如果匹配成功就會跳轉(zhuǎn)到admin.jsp這個頁面,如果沒有就會在頁面中提示錯誤;如果用戶選擇的是借閱者權(quán)限,頁面就會跳轉(zhuǎn)到borrow.jsp這個頁面。</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("用戶名或密碼錯誤");</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 圖書管理員頁面設(shè)計</p><p>  用戶輸入正確的密碼選擇對應(yīng)的權(quán)限判斷成功之后就會跳轉(zhuǎn)到這個頁面,這個頁面有添加圖書、查詢/刪除

38、/修改圖書、添加借閱信息、查詢/刪除借閱信息,還有退出系統(tǒng)這幾個標(biāo)簽。</p><p><b>  4.2.1添加圖書</b></p><p>  添加圖書頁面就在JSP頁面中定義幾個textfield分別來接收用戶輸入的bookname、ISBN、type、cbs、price、count這幾個值</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>  這幾個值會傳給addBookAction,Action會保存這幾個值,然后將這些保

44、存的值傳到方法service.addBook這個方法中,這個方法會將這些值保存到數(shù)據(jù)庫中,更新數(shù)據(jù)庫中的數(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頁面有一個文本輸入框和4個按鈕,4個按鈕分別是按書名、按書號、按類型和顯示所有。JSP頁面中會定義一個text

47、field名為condition,就是說textfield接收到的值就是condition的值,這個值會傳送到queryBookAction中,Action會創(chuàng)建一個list,condition和按鈕的值會存入這個list,然后傳到service.queryBookList這個方法中。</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)這個方法之后,方法會首先判斷按鈕的值,根據(jù)不同的值,方法會創(chuàng)建不同的查詢語句。然后根據(jù)condition的值到數(shù)據(jù)

49、庫中查詢相匹配的數(shù)據(jù)。</p><p>  if (howsearch.equals("按書號"))</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ù)會保存到一個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得到這個list之后,會將其中的值分別傳給與其匹配的類。在頁面中顯示出來。</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é)果頁面中有查詢到的圖書信息,還有2個修改和刪除按鈕以及一個復(fù)選框。這樣就可以對查詢到的圖書信息進(jìn)行相關(guān)的處理。</p>

57、<p>  前面的復(fù)選框?qū)?yīng)的是數(shù)據(jù)庫中的boodid的值,boodid是插入圖書信息數(shù)據(jù)庫自動添加的一個值,在上面的查詢結(jié)果傳到list的時候,數(shù)據(jù)庫中的boodid也會傳出來給JSP頁面中的checkbox接收。選中復(fù)選框就是選中了一個boodid,點擊刪除之后JSP頁面會就將boodid和按鈕的值傳給dealqueryBookAction中,在這個Action中他先判斷按鈕的值,如果是刪除boodid的值就會傳到serv

58、ice.deletebook這個方法中。</p><p>  AdminService service= new AdminServiceImpl();</p><p>  if(submit.equals("刪除")){</p><p>  service.deletebook(id);</p><p><b>

59、;  }</b></p><p>  在這個方法中會創(chuàng)建一條刪除語句。刪除的對象就是與boodid相對應(yīng)的那條數(shù)據(jù)庫數(shù)據(jù)。因為考慮到有時會不只刪除一條圖書信息,可以選擇多個boodid所以用一個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就會先得到boodid的值然后在將剛才查詢到圖書信息的值取過來再將它們顯示到update.jsp

61、 這個頁面,這樣用戶就可以直接在原來的信息上修改。</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>  用戶要更改的信息改好之后點擊保存,update.jsp頁面就會就這些得到的值傳給updatebookAction,由Action保存到一個list然后傳給方法service.updatebook,由這個方法連接數(shù)據(jù)庫并把list當(dāng)中的值分別

63、保存到數(shù)據(jù)庫中,更新數(shù)據(jù)庫的數(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ù)庫成功更新數(shù)據(jù)之后就會回到Action,Action會返回一

66、個更新成功的信息顯示在頁面上。</p><p>  4.2.3添加借閱信息</p><p>  當(dāng)借閱者來借書的時候就需要添加借閱信息。添加借閱信息的頁面比較簡單。因為只實現(xiàn)了相當(dāng)簡單的功能就沒有那么多的數(shù)據(jù)要填寫。只有2個文本輸入框。一個文本輸入框填寫借閱者的用戶名一個文本框填寫借閱者所借的書名,借書時間取系統(tǒng)當(dāng)時時間。</p><p>  圖書管理員在JSP頁面

67、輸入借閱的信息,這些數(shù)據(jù)傳送給addBorrowInfoAction,Action保存?zhèn)鬟^來的數(shù)據(jù)然后傳給方法servoce.addBorrowInfo,這個方法會連接數(shù)據(jù)庫,并把得到的數(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>  查詢借閱信息的界面與查詢圖書的界面大同小異,還是用一個textfield文本輸入框來接收輸入的信息,定義名為condition。JSP頁面將condition的值和按鈕的值傳給QueryBorr

70、owInfoAction,Action保存的值傳給service.queryBorrowList這個方法</p><p>  UserService service =new UserServiceImpl();</p><p>  ArrayLis list=service.queryBorrowList(condition, howsearch);</p><p&g

71、t;  service.queryBorrowList得到傳進(jìn)來的數(shù)據(jù)時,判斷按鈕的值是按什么查詢,然后根據(jù)不同的按鈕創(chuàng)建不同的查詢語句。最后根據(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é)果放在一個list當(dāng)中,然后將這個list返回。list就會傳到QueryBorrowInfoAction,Action得到這個list先判斷這個list是否為空,如果為空則在頁面上顯示空記錄。</p><p

75、>  if(list.isEmpty()){</p><p>  this.addActionError("空記錄"); </p><p>  return INPUT;</p><p><b>  }</b></p><p>  如果list不為Action就會將這個list傳給頁面請求。&

76、lt;/p><p>  Map request = (Map)ActionContext.getContext().get("request"); </p><p>  request.put("ls", list);</p><p>  queryborrowinforesult.jsp就會請求得到list,然后list就

77、傳進(jìn)了queryborrowinforesult.jsp。JSP頁面就會將這些值取出來放進(jìn)與其對應(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é)果在頁面中顯示出來,如果借閱者將書已經(jīng)還回的話就需要將這條借閱信息刪除,刪除還是與刪除圖書差不多。首先要選定要刪除的借閱信息的復(fù)選框然后點擊刪除。</p><p>  這個復(fù)選框?qū)?yīng)的是數(shù)據(jù)庫中borrow表中的id值,它是每次添加借閱信息數(shù)據(jù)庫自動添加的一個值。查詢借閱信息的時候系統(tǒng)也會自動將數(shù)據(jù)庫中的這個id取出來放到list當(dāng)中?,F(xiàn)在JSP頁面

81、會將這個id值與按鈕的值一起傳給dealBorrowInfoAction,Action在將這個id值傳進(jìn)service.deleteborrowinfo這個方法。</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這個方法得到id之后先進(jìn)行一個for循環(huán),然后創(chuàng)建一條刪除語句,刪除borrow表中與這個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借閱者頁面設(shè)計</p><

85、p>  借閱者頁面只有查詢圖書、查詢借閱信息和退出系統(tǒng)幾個標(biāo)簽。</p><p>  借閱者不能有太多的權(quán)限,只能查找一下圖書然后能根據(jù)自己的用戶名查詢一下自己的借閱信息。</p><p>  查詢圖書頁面只有3個submit按鈕和一個name為condition的textfield文本輸入框。JSP頁面將接收到的數(shù)據(jù)傳送給queryBookAction,queryBookActio

86、n用一個list保存condition和submit的值,然后傳給service.queryBookList這個方法,在這個方法中先判斷submit的值,根據(jù)submit的值的不同,方法將創(chuàng)建不同的查詢語句,在配合condition的值就可以完成查詢。</p><p>  借閱信息查詢頁面只有name為condition的textfield文本輸入框和一個submit按鈕。Textfield提示借閱者輸入自己借書

87、的用戶名,然后就將取得的值傳送給borrowerqueryborrowinfoAction,Action在將得到的condition值傳給service.queryborrowinfo。這個方法直接創(chuàng)建一條查詢語句,查詢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é)果存入一個list當(dāng)中返回出來,Action就會的到返回的list,然后在Act

90、ion中進(jìn)行判斷,如果list為空就提示空記錄,如果list不為空,就將list傳給JSP頁面,在頁面中將結(jié)果顯示出來。</p><p>  點擊退出系統(tǒng)的話,頁面就會跳轉(zhuǎn)到登陸界面。</p><p><b>  結(jié)束語</b></p><p>  在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識、經(jīng)驗方面都存在著不足。另外,在整個開發(fā)的過

91、程中,時間也比較倉促。因此,該系統(tǒng)必然會存在一些缺陷和不足。因為對圖書管理的整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。盡管該圖書管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點是圖書管理系統(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è)計與案例.北京:高等教育出版社,2004.11</p><p>  [3] 牛麗平.UML 面向?qū)ο笤O(shè)計與分析基礎(chǔ)教程.北京:清華大學(xué)出版社, 2007.7</p><

93、;p>  [4] 張海藩,倪寧.軟件工程.北京:人民郵電出版社,2010.2</p><p>  [5] 武劍潔,陳傳波,肖來元.軟件測試技術(shù).武漢:華中科技大學(xué)出版社,2008.10</p><p>  [6] 嚴(yán)耀偉,王芳.計算機(jī)網(wǎng)絡(luò)技術(shù)及應(yīng)用.北京:人民郵電出版社,2009.9</p><p>  [7] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教務(wù)出版

94、社,2006.5</p><p>  [8] 徐國平,武裝.網(wǎng)頁設(shè)計與制作教程.北京:高等教育出版社,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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論