




免費預(yù)覽已結(jié)束,剩余42頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程課程設(shè)計 圖書管理系統(tǒng)軟件工程實踐課程設(shè)計2 圖書管理系統(tǒng)(JAVA)2006年1月目錄軟件工程實踐課程設(shè)計4一 系統(tǒng)需求分析41需求描述411目標(biāo)412需求補充說明42確定執(zhí)行者53確定用例53.1圖書信息的維護用例53.2讀者信息的維護用例53.3圖書信息的查詢用例63.4讀者信息的查詢用例63.5查詢個人基本信息用例63.6查詢個人借閱信息用例63.7借書用例63.8還書用例73.9口令管理用例7二 系統(tǒng)總體設(shè)計71.建立分析的靜態(tài)模型71.1圖書類描述81.2讀者類描述91.3借閱記錄類描述91.4帳號類描述92.提供交互界面的類102.1對圖書信息操作的界面類102.2對讀者信息操作的界面類102.3對借閱記錄信息操作的界面類102.4對帳號信息操作的界面類103. 類的動態(tài)設(shè)計103.1 借書103.2 還書114. 數(shù)據(jù)庫表的設(shè)計134.1 圖書表:134.2 讀者表134.3 借閱記錄表134.4 帳號表13三 系統(tǒng)的實現(xiàn)141軟件平臺142技術(shù)路線143具體實現(xiàn):143.1 數(shù)據(jù)庫實現(xiàn)143.2 前臺頁面實現(xiàn)153.3 編碼21四 系統(tǒng)操作431系統(tǒng)登陸432圖書信息的操作443讀者信息的操作464 圖書流通操作46軟件工程實踐課程設(shè)計圖書管理系統(tǒng)的設(shè)計及實現(xiàn)隨著社會信息量的與日俱增,作為信息存儲的主要媒體之一圖書,數(shù)量、規(guī)模比以往任何時候都大的多,圖書管理部門需要使用方便而有效的方式來管理書籍。設(shè)計、編寫一個簡單圖書管理系統(tǒng)雖然并不能從功能的種類和操作界面、數(shù)據(jù)的存儲和共享等方面滿足實際使用的需要,但對于學(xué)習(xí)軟件設(shè)計的一般方法(如何獲取需求;如何進行以滿足需求的類設(shè)計和類對象之間的協(xié)作為主要內(nèi)容的總體設(shè)計;如何以總體設(shè)計為依據(jù),完成以各類算法設(shè)計和工程化編碼實現(xiàn)為主要內(nèi)容的詳細(xì)設(shè)計;以及如何對可以運行的程序進行必要測試。)是十分必要的。一 系統(tǒng)需求分析1需求描述11目標(biāo)圖書管理系統(tǒng)主要提供圖書信息和讀者基本信息的維護以及借閱等功能。該系統(tǒng)針對的用戶是單個中小型圖書室,藏書的種類和數(shù)量較少,相應(yīng)的需求有:l 能夠存儲一定數(shù)量的圖書信息,并方便有效的進行相應(yīng)的書籍?dāng)?shù)據(jù)操作和管理,這主要包括: 圖書信息的錄入、刪除及修改。 圖書信息的多關(guān)鍵字檢索查詢。 圖書的出借、返還和資料統(tǒng)計。l 能夠?qū)σ欢〝?shù)量的讀者進行相應(yīng)的信息存儲與管理,這其中包括: 讀者信息的登記、刪除及修改。 讀者資料的統(tǒng)計與查詢。 能夠提供一定的安全機制,提供數(shù)據(jù)信息授權(quán)訪問。 12需求補充說明l 數(shù)據(jù)保存:需要長期保存在數(shù)據(jù)庫的數(shù)據(jù)有: 圖書信息:圖書的基本信息; 讀者信息:讀者的基本信息; 借閱信息:圖書的借閱信息; 帳號信息:圖書管理員和讀者的登錄帳號; l 系統(tǒng)用戶:圖書管理員、讀者。 圖書管理員:對圖書和讀者數(shù)據(jù)可執(zhí)行添加、修改、刪除以及查詢等操作。 讀者:可查詢圖書以及查詢與本人相關(guān)的借閱信息。2確定執(zhí)行者 執(zhí)行者為圖書管理員、讀者3確定用例圖一是我們通過一定的調(diào)研和分析得到的圖書管理系統(tǒng)的用例圖:圖一 用例圖3.1圖書信息的維護用例用例名:圖書信息的維護參與執(zhí)行者:圖書管理員入口條件:圖書管理員已經(jīng)登陸到該系統(tǒng)中。事件流:當(dāng)有新書入庫時,圖書管理員在錄入頁面輸入書的信息,點擊提交按鈕,系統(tǒng)將書的信息保存到數(shù)據(jù)庫中;當(dāng)某一本圖書的信息需要修改時,圖書管理員通過輸入查詢條件,搜索出該書時,點擊修改按鈕,系統(tǒng)在可編輯狀態(tài)顯示圖書的當(dāng)前信息,圖書管理員修改具體信息,點擊保存按鈕,系統(tǒng)將更新數(shù)據(jù)庫中該書的信息;當(dāng)需要刪除一個或多個圖書時,圖書管理員查找到需要刪除的圖書記錄,點擊刪除按鈕,系統(tǒng)提示“確實要刪除?”對話框,當(dāng)管理員選擇“是”,系統(tǒng)將刪除數(shù)據(jù)庫中相應(yīng)圖書的信息,反之,則不進行任何操作。出口條件: 系統(tǒng)將數(shù)據(jù)庫中的信息進行相應(yīng)的操作:添加圖書信息時,將新的圖書信息保存在數(shù)據(jù)庫中;修改圖書信息時,將數(shù)據(jù)庫中該圖書的信息做相應(yīng)的更新操作;刪除圖書信息時,則刪除數(shù)據(jù)庫中的相應(yīng)圖書記錄。異常事件:在圖書進行修改和刪除時,先查出需要進行處理的圖書記錄,如果數(shù)據(jù)庫中不錯在符合條件的記錄,查詢無結(jié)果時,則無法進行修改和刪除操作。3.2讀者信息的維護用例用例名:讀者信息的維護參與執(zhí)行者:圖書管理員入口條件:圖書管理員已經(jīng)登陸到該系統(tǒng)中。事件流:當(dāng)有新的讀者時,圖書管理員在錄入頁面輸入讀者的信息,點擊提交按鈕,系統(tǒng)將讀者的信息保存到數(shù)據(jù)庫中;當(dāng)某一本讀者的信息需要修改時,讀者管理員通過輸入查詢條件,搜索出該讀者信息時,點擊修改按鈕,系統(tǒng)在可編輯狀態(tài)顯示讀者的當(dāng)前信息,讀者管理員修改具體信息,點擊保存按鈕,系統(tǒng)將更新數(shù)據(jù)庫中該讀者的信息;當(dāng)需要刪除一個或多個讀者時,圖書管理員查找到需要刪除的讀者記錄,點擊刪除按鈕,系統(tǒng)提示“確實要刪除?”對話框,當(dāng)管理員選擇“是”,系統(tǒng)將刪除數(shù)據(jù)庫中該圖書的信息,反之,則不進行任何操作。出口條件: 系統(tǒng)將數(shù)據(jù)庫中的讀者信息進行相應(yīng)的操作:添加讀者信息時,將新的讀者信息保存在數(shù)據(jù)庫中;修改讀者信息時,將數(shù)據(jù)庫中該讀者的信息做相應(yīng)的更新操作;刪除讀者信息時,則刪除數(shù)據(jù)庫中的相應(yīng)讀者記錄。異常事件:在進行修改和刪除讀者信息時,先查出需要進行處理的讀者記錄,如果數(shù)據(jù)庫中不錯在符合條件的記錄,查詢無結(jié)果時,則無法進行修改和刪除操作。3.3圖書信息的查詢用例用例名:圖書信息的查詢參與執(zhí)行者:圖書管理員、讀者入口條件:無事件流:通過交互界面輸入查詢條件(如書名,作者名等)搜索圖書記錄。出口條件:若有符合條件的課程信息,則系統(tǒng)顯示這些圖書信息。否則系統(tǒng)提示用戶重新輸入查詢條件。3.4讀者信息的查詢用例用例名:讀者信息的查詢參與執(zhí)行者:圖書管理員入口條件:用戶已經(jīng)登陸到該系統(tǒng)中。事件流:通過查詢界面輸入查詢條件(如讀者證,讀者姓名等)搜索待讀者記錄。 出口條件:若有符合條件的讀者信息,則系統(tǒng)顯示讀者信息。否則系統(tǒng)提示用戶重新輸入查詢條件。3.5查詢個人基本信息用例用例名:查詢個人基本信息參與執(zhí)行者:讀者入口條件:用戶已經(jīng)登陸到該系統(tǒng)中。事件流:點擊查詢個人基本信息按鈕。出口條件:系統(tǒng)顯示讀者本人信息。3.6查詢個人借閱信息用例用例名:查詢個人借閱信息參與執(zhí)行者:讀者入口條件:用戶已經(jīng)登陸到該系統(tǒng)中。事件流:點擊查詢個人借閱信息按鈕。出口條件:系統(tǒng)顯示讀者的借閱信息。3.7借書用例用例名:借書參與執(zhí)行者:圖書管理員、讀者入口條件:圖書管理員已經(jīng)登陸到該系統(tǒng)中。事件流:圖書管理員在借書頁面,輸入圖書編號和讀者證號,點擊保存。出口條件:系統(tǒng)將這條借書記錄保存到數(shù)據(jù)庫中。異常事件:如果該圖書未入庫,數(shù)據(jù)庫中不存在該圖書編號,提示“該書未入庫”;如果數(shù)據(jù)庫中不存在該讀者證號,也相應(yīng)的做出提示。3.8還書用例用例名:還書參與執(zhí)行者:圖書管理員、讀者入口條件:圖書管理員已經(jīng)登陸到該系統(tǒng)中。事件流:圖書管理員在還書頁面,輸入圖書編號,點擊還書。出口條件:系統(tǒng)將刪除數(shù)據(jù)庫中這條借書記錄。異常事件:如果數(shù)據(jù)庫中不存在這本書的借閱記錄,提示“非本館借出的圖書”,如果該書已過期,也相應(yīng)的做出提示。3.9口令管理用例用例名:口令管理參與執(zhí)行者:圖書管理員、讀者入口條件:用戶已經(jīng)登陸到該系統(tǒng)中。事件流:用戶點擊“修改密碼”按鈕,在口令修改頁面輸入新的密碼,點擊保存按鈕。出口條件:數(shù)據(jù)庫中的密碼被修改成最新的密碼。二 系統(tǒng)總體設(shè)計從系統(tǒng)的需求分析中不難看出:系統(tǒng)要處理的數(shù)據(jù)就是描述圖書和讀者信息的各種數(shù)據(jù),因此如何組織這些數(shù)據(jù)、如何操作這些數(shù)據(jù)、如何為操作這些數(shù)據(jù)提供交互界面等就是系統(tǒng)總體設(shè)計的主要任務(wù)。1. 建立分析的靜態(tài)模型候選描述類名注釋圖書在系統(tǒng)中,需要保存圖書的基本信息,所以它應(yīng)該是系統(tǒng)的對象。Book持久讀者在系統(tǒng)中,需要保存讀者的基本信息,所以它應(yīng)該是系統(tǒng)的對象。Reader持久借閱記錄在系統(tǒng)中,需要保存借書的記錄,所以它應(yīng)該是系統(tǒng)的對象。Record持久賬號在系統(tǒng)中,賬號是用來保存用戶名密碼,用于權(quán)限判定,所以它應(yīng)該是系統(tǒng)的對象。Account持久通過分析,我們得到的圖書管理系統(tǒng)的類圖,如圖二圖二 類圖注:1.Account類中的username就是對應(yīng)Reader類中的readerId;2.Record類中中的bookId對應(yīng)Book類中的bookId,readerId對應(yīng)Reader類中的readerId。1.1圖書類描述類名:Book類屬性:屬性名屬性解釋數(shù)據(jù)類型bookId圖書編號StringbookName圖書書名Stringauthor圖書作者Stringpublisher圖書出版社Stringprice圖書單價Doubleabstracts圖書摘要Stringcatelog圖書分類Stringstatus圖書狀態(tài)String類方法:方法名方法功能返回值類型savaBook添加圖書信息voiddeleteBook刪除圖書信息voidupdateBook修改圖書信息voidgetBook根據(jù)id查找某本圖書的詳細(xì)信息getBooks查詢圖書信息List1.2讀者類描述類名:Reader類屬性:屬性名屬性解釋數(shù)據(jù)類型readerId讀者證號StringreaderName讀者姓名Stringaddress讀者聯(lián)系地址Stringphone讀者電話號碼Stringemail讀者電子郵件String類方法:方法名方法功能返回值類型savaReader添加讀者信息voiddeleteReader刪除讀者信息voidupdateReader修改讀者信息voidgetReader根據(jù)id查找某個讀者的詳細(xì)信息getReaders查詢讀者信息List1.3借閱記錄類描述類名:Record類屬性:屬性名屬性解釋數(shù)據(jù)類型bookId圖書編號StringreaderId讀者證號StringborrowDate借閱日期Date類方法:方法名方法功能返回值類型savaRecord添加借書記錄voiddeleteRecord刪除借書記錄voidgetRecords查詢借書記錄ListisExpired是否過期booleanborrowBook借書voidreturnBook還書void1.4帳號類描述類名:Account類屬性:屬性名屬性解釋數(shù)據(jù)類型username用戶名Stringpassword密碼Stringtype用戶類型String類方法:方法名方法功能返回值類型savaAccount添加帳號voiddeleteAccount刪除帳號voidupdateAccount修改帳號voidisAccount判斷是否是合法用戶booleangetAccounts查詢帳號信息List2. 提供交互界面的類2.1對圖書信息操作的界面類book_save.jsp 添加圖書頁面;book_list.jsp 查詢圖書記錄的列表顯示;book_detail.jsp 顯示圖書詳細(xì)信息;book_update.jsp 圖書信息更新頁面;book_query.jsp 圖書信息查詢頁面2.2對讀者信息操作的界面類reader_save.jsp 添加讀者頁面;reader_list.jsp 多條讀者記錄的列表顯示;reader_detail.jsp 顯示讀者詳細(xì)信息;reader_update.jsp 讀者信息更新頁面;reader_query.jsp 讀者信息查詢頁面2.3對借閱記錄信息操作的界面類record_save.jsp 添加借閱記錄頁面;record_list.jsp 查詢借閱記錄結(jié)果的列表顯示;record_query.jsp 借閱記錄信息查詢頁面record_delete.jsp 還書頁面2.4對帳號信息操作的界面類account_save.jsp 添加帳號頁面;account_list.jsp 查詢帳號記錄結(jié)果的列表顯示;account_update.jsp帳號信息更新頁面;account_query.jsp 帳號信息查詢頁面3. 類的動態(tài)設(shè)計由于借書和還書的過程是本系統(tǒng)中較重要而且較復(fù)雜的流程,因此在這里列出它們的時序圖。3.1 借書借書時序圖如圖三:圖三 借書時序圖借書時序描述:l 讀者將借閱證和圖書交給圖書管理員;l 圖書管理員在record_save.jsp頁面中輸入讀者證號和圖書編號,點擊保存按鈕;l 系統(tǒng)調(diào)用Record中的borrowBook()方法來將進行借書處理;l saveRecord()方法調(diào)用Book中的方法getBook(),來查詢該圖書是否入庫;l 同時saveRecord()方法調(diào)用Reader中的getReader()方法,來查詢是否存在該讀者;l 如果圖書已入庫且讀者是合法的讀者,則調(diào)用saveRecord()方法;l 返回到record_save.jsp,如果需要可以繼續(xù)借書;l 圖書管理員將圖書和借閱證返還給讀者;3.2 還書還書時序圖如圖四:還書時序描述:l 讀者將待還的圖書交給圖書管理員;l 圖書管理員在record_delete.jsp頁面中輸入圖書編號,點擊還書按鈕;l 系統(tǒng)調(diào)用Record中的returnBook()方法來進行還書處理;l returnBook ()方法調(diào)用Record中的方法getRecord (),來查詢該圖書是否是本館出借的圖書;l 同時returnBook ()方法調(diào)用Record中的isExpired()方法,來查詢借閱是否超期;l 如果沒有超期,returnBook ()方法調(diào)用Record中的deleteReader()方法,來刪除該條借閱記錄;l 跳轉(zhuǎn)到record_delete.jsp,如果需要,可以繼續(xù)進行還書;l 圖書管理員將圖書和借閱證返還給讀者;4. 數(shù)據(jù)庫表的設(shè)計4.1 圖書表:表名: book字段名字段含義數(shù)據(jù)類型是否允許空是否主鍵id圖書的自然主鍵int bookId圖書編號varchar(20)bookName圖書書名varchar(20)author圖書作者varchar(20)publisher圖書出版社varchar(50)price圖書單價doubleabstracts圖書摘要varchar(500)catelog圖書分類varchar(20)status圖書狀態(tài)char(1)4.2 讀者表表名:reader屬性名屬性解釋數(shù)據(jù)類型是否允許空是否主鍵id讀者的自然主鍵intreaderId讀者證號varchar(20)readerName讀者姓名varchar(20)address讀者聯(lián)系地址varchar(100)phone讀者電話號碼varchar(20)email讀者電子郵件varchar(40)4.3 借閱記錄表表名:record屬性名屬性解釋數(shù)據(jù)類型是否允許空是否主鍵id借閱記錄的自然主鍵intbookId圖書編號varchar(20)readerId讀者證號varchar(20)borrowDate借閱日期Date4.4 帳號表表名:account屬性名屬性解釋數(shù)據(jù)類型是否允許空是否主鍵id帳號的自然主鍵intusername用戶名varchar(20)password密碼varchar(20)type用戶類型char(1)三 系統(tǒng)的實現(xiàn)1軟件平臺l 操作系統(tǒng):windows 2000 或windowsXpl 數(shù)據(jù)庫:Microsoft SQL Server 2000l JDK:jdk1.4l 應(yīng)用服務(wù)器:Apache tomcat5.0l 開發(fā)平臺:Netbean5.02技術(shù)路線l 系統(tǒng)框架:struts注:如果沒有一定的java基礎(chǔ),可以不采用struts,系統(tǒng)僅用jsp來實現(xiàn);3具體實現(xiàn):3.1 數(shù)據(jù)庫實現(xiàn)注:以下操作可以參考文檔數(shù)據(jù)庫服務(wù)器安裝及使用.doc進行l(wèi) 安裝數(shù)據(jù)庫服務(wù)器Microsoft SQL Server2000 SQL Server 2000 l 建立數(shù)據(jù)庫表,步驟如下: 從開始菜單中,打開SQL Server 企業(yè)管理器,新建數(shù)據(jù)庫lms(參考使用文檔),效果如下圖所示: 在數(shù)據(jù)庫lms中新建book表,按照本文檔第二部分總體設(shè)計中的“4數(shù)據(jù)庫表的設(shè)計”來設(shè)置book的字段如下圖: 將系統(tǒng)需要的幾個表都在數(shù)據(jù)庫中建好;3.2 前臺頁面實現(xiàn)本系統(tǒng)的顯示頁面用dreamweaver來設(shè)計,步驟如下:l 安裝dreamweaver,打開dreamweaver后,界面如下圖:l 建系統(tǒng)中所需的前臺顯示頁面,步驟如下: 新建網(wǎng)頁:選擇菜單中“File”“New”來新建jsp頁面,選擇“Dynamic Page”中的“JSP”,點擊“Create”按鈕,如下圖:出現(xiàn)新建的jsp,如下圖所示:點擊頁面頂端的“Design”按鈕,切換到設(shè)計視窗,如下圖 建立表單點擊工具欄上的“common”按鈕,出現(xiàn)下拉框,選擇Form,如下圖所示:這時工具欄出現(xiàn)的工具變成了表單類的工具,點擊工具欄中的“Form”,這時頁面上添加了表單(即紅色虛線邊框),如下圖所示:這時在頁面下方設(shè)置表單的屬性,通常情況只需要設(shè)置Action,即該頁面內(nèi)容的處理頁面:這里假設(shè)為“/book.do?method=save”,結(jié)果如下圖: 使用表格定位切換到Common工具欄,點擊工具欄中Table,出現(xiàn)表屬性設(shè)置,按照下圖設(shè)置:點擊“OK”按鈕,這時主窗口中出現(xiàn)表,如下圖: 添加所需表單元素在表中輸入文字“圖書編號”,并且根據(jù)需要拖動表來設(shè)置表格的大小,切換到“Forms”工具欄,點擊工具欄中的“Text Field”。如下圖:根據(jù)需要,添加相應(yīng)的控件(如“Textarea”,“Button”等),效果如下圖: 保存選擇菜單“File”中的“Save”保存文件。3.3 編碼l 開發(fā)工具使用此系統(tǒng)使用netbean5.0進行開發(fā)。打開netbean5.0,如下:新建工程打開菜單“File”選擇“New Project”,選擇“Web”,如下圖:選擇“Next”,在界面中數(shù)如工程名“l(fā)ms”和存放路徑“E:”(可以根據(jù)自己的需要來輸入),如下圖:點擊“Finish”。這時建立了工程“l(fā)ms”。如下圖:生成的項目中有多個文件夾:Web Pages中存放的是jsp文件。Sourcr Packages中存放源文件,library中存放庫文件。右鍵點擊“Run Project”,便可以運行該工程了。效果如下:我們只要在相應(yīng)的目錄下添加代碼就可以了。注意要導(dǎo)入系統(tǒng)所用的庫文件,系統(tǒng)所需庫文件在文件夾“webWEB-INFlib”中,以及添加web.xml和struts-config.xml文件。l 代碼介紹系統(tǒng)采用基于MVC(Model,View,Control)結(jié)構(gòu)的struts框架 Model:創(chuàng)建由ActionForm 的派生類實現(xiàn)對客戶端表單數(shù)據(jù)的封裝;例:BookForm.javapackage u.lms.form;import org.apache.struts.validator.ValidatorForm;public class BookForm extends ValidatorForm private java.lang.String id;/代理主鍵,沒有業(yè)務(wù)含義 private java.lang.String bookId;/圖書編號 private java.lang.String bookName;/圖書書名 private java.lang.String author;/圖書作者 private java.lang.String publisher;/圖書出版社 private double price;/圖書單價 private java.lang.String abstracts;/圖書摘要 private java.lang.String catelog;/圖書分類 private java.lang.String status;/圖書狀態(tài): 1為庫內(nèi) 2為解除public java.lang.String getAbstracts() return abstracts;public void setAbstracts(java.lang.String abstracts) this.abstracts = abstracts;public java.lang.String getAuthor() return author;public void setAuthor(java.lang.String author) this.author = author;public java.lang.String getBookId() return bookId;public void setBookId(java.lang.String bookId) this.bookId = bookId;public java.lang.String getBookName() return bookName;public void setBookName(java.lang.String bookName) this.bookName = bookName;public java.lang.String getCatelog() return catelog;public void setCatelog(java.lang.String catelog) this.catelog = catelog;public java.lang.String getId() return id;public void setId(java.lang.String id) this.id = id;public double getPrice() return price;public void setPrice(double price) this.price = price;public java.lang.String getPublisher() return publisher;public void setPublisher(java.lang.String publisher) this.publisher = publisher;public java.lang.String getStatus() return status;public void setStatus(java.lang.String status) this.status = status; 其他Form:ReaderForm.java(具體參見u.lms.form.ReaderForm)RecordForm.java(具體參見u.lms.form.RecordForm)AccountForm.java(具體參見u.lms.form.RecordForm) View:主要是一些jsp文件,顯示數(shù)據(jù)和提供數(shù)據(jù)錄入等功能;book_save.jsp:添加圖書頁面;book_update.jsp:修改圖書頁面;book_query.jsp:圖書查詢頁面;book_list.jsp:顯示圖書信息列表;reader_save.jsp:添加圖書頁面;reader_update.jsp:修改圖書頁面;reader_query.jsp:圖書查詢頁面;reader_list.jsp:顯示圖書信息列表;record_save.jsp:顯示圖書信息列表;record_delete.jsp:顯示圖書信息列表;account_save.jsp:添加帳號頁面;account_update.jsp:修改密碼頁面; Control:提供了控制部分的實現(xiàn);例:BookAction.javapublic class BookAction extends DispatchAction private static final Log logger = LogFactory.getLog(BookAction.class);/* * 添加圖書信息 * * param mapping * param form * param request * param response * return * throws ServletException */public ActionForward save(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws ServletException BookForm bookForm = (BookForm) form;try IBookDao iBookDao = DaoFactory.getInstance().getBookDao();iBookDao.saveBook(bookForm);return mapping.findForward(success_save); catch (Exception e) logger.error(添加圖書信息出錯, e);throw new ServletException(添加圖書信息出錯, e);/* * 刪除圖書信息 * param mapping * param form * param request * param response * return * throws ServletException */public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws ServletException try String ids=request.getParameterValues(id);IBookDao iBookDao = DaoFactory.getInstance().getBookDao();iBookDao.deleteBook(ids);return mapping.findForward(success_delete); catch (Exception e) logger.error(刪除圖書信息出錯, e);throw new ServletException(刪除圖書信息出錯, e);/* * 查找圖書信息 * * param mapping * param form * param request * param response * return * throws ServletException */public ActionForward query(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws ServletException BookForm bookForm = (BookForm) form;List bookList = new ArrayList();try IBookDao iBookDao = DaoFactory.getInstance().getBookDao();bookList = iBookDao.getBooks(bookForm);request.setAttribute(bookList, bookList);return mapping.findForward(bookList); catch (Exception e) logger.error(查找圖書信息出錯, e);throw new ServletException(查找圖書信息出錯, e);/* * 在更新頁面顯示圖書當(dāng)前詳細(xì)信息 * * param mapping * param form * param request * param response * return * throws ServletException */public ActionForward updateInit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws ServletException try String id=request.getParameter(id);IBookDao iBookDao = DaoFactory.getInstance().getBookDao();BookForm bookForm = iBookDao.getBook(id);request.setAttribute(bookForm, bookForm);return mapping.findForward(bookUpdate); catch (Exception e) logger.error(查找圖書信息出錯, e);throw new ServletException(查找圖書信息出錯, e);/* * 更新圖書信息 * * param mapping * param form * param request * param response * return * throws ServletException */public ActionForward update(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws ServletException BookForm bookForm = (BookForm) form;try IBookDao iBookDao = DaoFactory.getInstance().getBookDao();iBookDao.updateBook(bookForm);return mapping.findForward(success_update); catch (Exception e) logger.error(更新圖書信息出錯, e);throw new ServletException(更新圖書信息出錯, e);其他Action:BookAction.java(具體參見u.lms.action.BookAction.java)ReaderAction.java(具體參見u.lms.action.ReaderAction.java)RecordAction.java(具體參見u.lms.action.RecordAction.java)AccountAction.java(具體參見u.lms.action.AccountAction.java) Dao文件以及DaoFactory類本系統(tǒng)中的Dao文件主要是實現(xiàn)數(shù)據(jù)訪問功能:對數(shù)據(jù)庫中的表進行增刪改查等操作。l Dao實現(xiàn)類 BookDao.javapackage u.lms.dao.impl;public class BookDao implements IBookDao /* * (non-Javadoc) * * see u.lms.dao.impl.IBookDao#saveBook(u.lms.form.BookForm) */public void saveBook(BookForm bookForm) Connection conn = null;PreparedStatement ps = null;try conn = ConnectionManager.getConnection();conn.setAutoCommit(false);ps = conn.prepareStatement(insert into Book(bookId,bookName,author,publisher,price,abstracts,catelog,status)+ values(?,?,?,?,?,?,?,?) );ps.setString(1, bookForm.getBookId();ps.setString(2, bookForm.getBookName();ps.setString(3, bookForm.getAuthor();ps.setString(4, bookForm.getPublisher();ps.setDouble(5, bookForm.getPrice();ps.setString(6, bookForm.getAbstracts();ps.setString(7, bookForm.getCatelog();/當(dāng)圖書入庫時,默認(rèn)狀態(tài)是1,表示在庫ps.setString(8, 1);ps.execute();mit();ps.close();conn.close(); catch (Exception e1) e1.printStackTrace(); finally try ps.close();conn.close(); catch (SQLException e) e.printStackTrace();/* * (non-Javadoc) * * see u.lms.dao.impl.IBookDao#deleteBook(java.lang.String) */public void deleteBook(String id) Connection conn = null;PreparedStatement ps = null;try conn = ConnectionManager.getConnection();conn.setAutoCommit(false);ps = conn.prepareStatement(delete from Book where id=?);ps.setString(1, id);ps.execute();mit();ps.close();conn.close(); catch (Exception e1) e1.printStackTrace(); finally try ps.close();conn.close(); catch (SQLException e) e.printStackTrace();/* * (non-Javadoc) * * see u.lms.dao.impl.IBookDao#deleteBook(java.lang.String ) */public void deleteBook(String ids) for (int i = 0; i ids.length; i+) deleteBook(idsi);/* * (non-Javadoc) * * see u.lms.dao.impl.IBookDao#updateBook(u.lms.form.BookForm) */public void updateBook(BookForm BookForm) Connection conn = null;PreparedStatement ps = null;try conn = ConnectionManager.getConnection();conn.setAutoCommit(false);ps = conn.prepareStatement(update Book + set bookId=? , bookName=? , author=? , publisher=? , price=? , abstracts=? , catelog=? , status=?+ where id=?);ps.setString(1, BookForm.getBookId();ps.s
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建材活動活動方案
- 幼兒騎平衡車活動方案
- 幸福社區(qū)小管家活動方案
- 幼教講座活動方案
- 幼兒園教師亮燈活動方案
- 幼兒園語言活動方案
- 床品活動滿額贈活動方案
- 年會團建策劃公司策劃方案
- 幼兒中班教育活動方案
- 年末團建活動方案
- 寶媽日常心理護理
- 2025年社會學(xué)概論測試題含答案(附解析)
- 2025-2030年環(huán)境工程產(chǎn)業(yè)深度調(diào)研及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年事業(yè)單位公開招聘考試(E類)《綜合應(yīng)用能力西醫(yī)臨床》試卷真題及完整解析
- 2025年中國AI翻譯行業(yè)市場全景分析及前景機遇研判報告
- 2025-2030中國酶聯(lián)免疫吸附測定(ELISA)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 安全檢查作業(yè)行為規(guī)范與專業(yè)知識 -改
- 學(xué)校信息化建設(shè)十五五規(guī)劃方案
- 2025年內(nèi)蒙古眾達(dá)人力資源公司招聘題庫帶答案分析
- 2025年保險專業(yè)知識能力測試題及答案
- 小學(xué)民法典主題班會教案
評論
0/150
提交評論