文檔簡介
分類號TP311UDCD10621408200923910密級公開編號2005122090成都信息工程學院學位論文基于JSP的圖書管理系統的設計與實現論文作者姓名申請學位專業信息安全申請學位類別工學學士指導教師姓名(職稱)王翔(講師)論文提交日期2009年06月01日基于JSP的圖書管理系統的設計與實現摘要隨著網絡技術的發展、計算機應用水平的提高的擴大,原來系統的時效性、數據的正確性、操作的方便性上都存在不足,已影響到系統的正常使用。經過考察比較,決定利用自己的力量對圖書管理系統重新設計,使系統能利用軟件開發技術的成果,方便圖書的管理。圖書管理系統是典型的信息管理系統。系統介紹了圖書系統的開發過程,設計中遇到的問題及解決方法以及提高當前應用程序或系統開發進度和改善工作性能利用其提供的各種面向對象的開發工具,首先在短時間內建立系統應用原型,然后,對初始原型系統進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統。本次課程設計利用JSP開發工具和SQL2000數據庫來開發這個圖書管理系統。該系統要解決的圖書管理所要解決的問題,可以滿足圖書管理基本要求,包括添加、管理等功能。該系統能根據用戶的需求,快捷方便的為讀者提供借閱服務。關鍵詞圖書管理系統信息管理JSPTHEDESIGNANDIMPLEMENTATIONOFLIBRARYMANAGEMENTSYSTEMABSTRACTALONGWITHNETWORKINGSDEVELOPMENT,THECOMPUTERAPPLICATIONLEVELSENHANCEMENTSEXPANSION,SYSTEMSEFFECTIVENESS,THEDATAACCURACY,INTHEOPERATIONCONVENIENCESHASTHEINSUFFICIENCYORIGINALLY,HASAFFECTEDSYSTEMSNORMALUSEAFTERTHEINSPECTIONCOMPARISON,DECIDEDTHATUSESOWNSTRENGTHTOTHELITERATUREMANAGEMENTSYSTEMMANAGEMENTSYSTEMREDESIGN,ENABLESTHESYSTEMTOUSETHESOFTWAREDEVELOPMENTTECHNOLOGYTHEACHIEVEMENT,CONVENIENTLITERATUREMANAGEMENTTHELITERATUREREGISTRATIONMANAGEMENTSYSTEMMANAGEMENTSYSTEMISTHETYPICALINFORMATIONMANAGEMENTSYSTEMTHESYSTEMINTRODUCEDTHELITERATUREREFERRALSYSTEMSPERFORMANCEHISTORY,INTHEDESIGNMEETSTHEQUESTIONANDTHESOLUTIONASWELLASENHANCETHECURRENTAPPLICATIONPROCEDUREORTHESYSTEMDEVELOPMENTPROGRESSANDTHEIMPROVEMENTOPERATINGPERFORMANCEEACHKINDOFOBJECTORIENTEDDEVELOPMENTKITWHICHPROVIDESUSINGIT,FIRSTESTABLISHESTHESYSTEMAPPLICATIONPROTOTYPEINASHORTTIME,THEN,CARRIESONTHEDEMANDITERATIONTOTHEINITIALPROTOTYPESYSTEM,REVISESUNCEASINGLYANDIMPROVES,UNTILFORMSTHEUSERSATISFIEDFEASIBLESYSTEMTHISCURRICULUMPROJECT2000DATABASESDEVELOPSTHISLITERATUREMANAGEMENTSYSTEMMANAGEMENTSYSTEMUSINGTHEJSP20DEVELOPMENTKITSANDSQLSERVERTHISSYSTEMMUSTSOLVETHELITERATUREADMINISTRATIONCENTERMUSTSOLVETHEQUESTION,MAYSATISFYTHELITERATUREMANAGEMENTESSENTIALREQUIREMENTS,INCLUDINGINCREASE,INQUIRY,MANAGEMENTANDSOONTHREEASPECTFUNCTIONSTHISSYSTEMCANACTACCORDINGTOTHEUSERTHEDEMAND,WHATFACILITATESQUICKLYISTHEREADERPROVIDESTHESERVICEKEYWORDLITERATUREMANAGEMENTSYSTEM、INFORMATIONMANAGEMENT、JSP目錄論文總頁數23頁1引言111系統開發背景112系統目標113系統開發環境12相關技術介紹221JSP技術概述222JDBC技術概述223SERVLET技術概述224MVC模式概述23系統需求分析431功能需求432系統功能分析及說明4321系統功能分析4322系統數據分析533性能需求534系統業務流程圖54系統設計741系統架構742數據庫設計8421數據庫需求分析8422數據庫概念結構設計9423數據庫邏輯結構設計943系統功能模塊設計12431系統功能模塊設計12432模塊功能設計125系統實現1351數據庫連接池的實現1352用戶登陸的實現1553圖書借閱的實現1654添加用戶的實現1755系統界面設計196系統測試1961界面測試1962功能測試20總結20參考文獻20致謝22聲明231引言隨著人類社會的發展,人類對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據了一定的位置,隨著圖書館規模的不斷擴大,圖書數量也相應的增加,有關圖書的各種信息量也成倍增加,面對著龐大的信息量,傳統的人工方式管理會導致圖書館管理上的混亂,人力與物力過多浪費,圖書館管理費用的增加,從而使圖書館的負擔過重,影響整個圖書館的運作和控制管理,因此,必須制定一套合理、有效,規范和實用的圖書管理系統,對圖書資料進行集中統一的管理。如何科學地管理圖書館不但關系到讀者求知的方便程度,也關系到圖書館的發展,因此,開發一套完善的公共圖書館管理系統就必不可少了。11系統開發背景近年來,隨著圖書館規模的不斷擴大,圖書數量也相應的增加,有關圖書的各種信息量也成倍增加,面對著龐大的信息量,傳統的人工方式管理會導致圖書館管理上的混亂,人力與物力過多浪費,圖書館管理費用的增加,從而使圖書館的負擔過重,影響整個圖書館的運作和控制管理,因此,必須制定一套合理、有效,規范和實用的圖書管理系統,對圖書資料進行集中統一的管理。另一方面,IT產業和INTERNET獲得了飛速發展,計算機應用已滲透到了各個領域,引起信息管理的革命,實現了信息的自動化處理,提高了處理的及時性和正確性。圖書管理工作面對大量的可模塊化處理的信息,是當今信息革命的一個重要陣地。圖書管理信息系統就是采用現代化的信息管理方式代替手工管理方式,提高圖書管理工作效率,作到信息的規范管理,科學統計和快速查詢,讓圖書館更好的為學校,社會服務。12系統目標本系統是專為小型圖書館設計的自動化集成系統。能完成圖書信息管理、用戶信息管理、借書還書管理等功能,適合管理人員少,藏書量不大的單位。所有工作模塊集中在同一界面,工作流程一目了然,方便工作人員操作掌握。13系統開發環境PC機一臺MICROSOFTWINDOWSXPPROFESSIONAL512M內存編程軟件MYECLIPSE601、APACHETOMCAT6014、SUNJDK16U2、MICROSOFTSQLSERVER2000、SQLSERVERDRVIERFORJDBCJDBC驅動2相關技術介紹21JSP技術概述JSPJAVASERVERPAGES是由SUNMICROSYSTEMS公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件HTM,HTML中插入JAVA程序段SCRIPTLET和JSP標記TAG,從而形成JSP文件JSP。WEB服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然后將執行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的JAVA程序段可以操作數據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。22JDBC技術概述JDBC(JAVADATABASECONNECTIVITY,JAVA數據庫連接)是一種用于執行SQL語句的JAVAAPI,可以為多種關系數據庫提供統一訪問,它由一組用JAVA語言編寫的類和接口組成。JDBC為工具/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純JAVAAPI編寫數據庫應用程序23SERVLET技術概述SERVLET是一種獨立于平臺和協議的服務器端的JAVA應用程序,可以生成動態的WEB頁面。它擔當WEB瀏覽器或其他HTTP客戶程序發出請求,與HTTP服務器上的數據庫或應用程序之間的中間層。SERVLET是位于WEB服務器內部的服務器端的JAVA應用程序,與傳統的從命令行啟動的JAVA應用程序不同,SERVLET由WEB服務器進行加載,該WEB服務器必須包含支持SERVLET的JAVA虛擬機。24MVC模式概述MVCMODELVIEWCONTROLLER模式,即模型視圖控制器模式,其核心思想是將整個程序代碼分成相對獨立而又能協同工作的3個組成部分。這樣的運行機制可以起到分工明確,指責清晰,各盡所長的效果。而在軟件開發的過程中,這樣的開發方式無疑可以有效地區分不同的開發者,盡可能減少彼此之間的互相影響。充分發揮每個開發者的特長。這在開發大型復雜的WEB項目時體現得尤為突出。MVC設計模式中,事件一般是指客戶端WEB瀏覽器提交的各種不同請求,這些請求由控制器進行處理,控制器根據事件的類型來改變模型或各個視圖,視圖也可以接受模型發出的數據更新的通知,依據數據更新的結果調整視圖效果,呈現在用戶面前而模型也可以通過視圖所獲得的用戶提交的數據進行具體業務邏輯的處理。圖1MVC設計模式的結構25MD5概述MD5的全稱是MESSAGEDIGESTALGORITHM5,在90年代初由MIT的計算機科學實驗室和RSADATASECURITYINC發明,經MD2、MD3和MD4發展而來。模型視圖1視圖2控制器事件改變改變改變更新更新獲得數據獲得數據MESSAGEDIGEST泛指字節串MESSAGE的HASH變換,就是把一個任意長度的字節串變換成一定長的大整數。請注意我使用了“字節串”而不是“字符串”這個詞,是因為這種變換只與字節的值有關,與字符集或編碼方式無關。MD5將任意長度的“字節串”變換成一個128BIT的大整數,并且它是一個不可逆的字符串變換算法,換句話說就是,即使你看到源程序和算法描述,也無法將一個MD5的值變換回原始的字符串,從數學原理上說,是因為原始的字符串有無窮多個,這有點象不存在反函數的數學函數。MD5的典型應用是對一段MESSAGE字節串產生FINGERPRINT指紋,以防止被“篡改”。舉個例子,你將一段話寫在一個叫READMETXT文件中,并對這個READMETXT產生一個MD5的值并記錄在案,然后你可以傳播這個文件給別人,別人如果修改了文件中的任何內容,你對這個文件重新計算MD5時就會發現。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的“抵賴”,這就是所謂的數字簽名應用。MD5還廣泛用于加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它算法)的方式保存的,用戶LOGIN的時候,系統是把用戶輸入的密碼計算成MD5值,然后再去和系統中保存的MD5值進行比較,而系統并不“知道”用戶的密碼是什么。一些黑客破獲這種密碼的方法是一種被稱為“跑字典”的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字符串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然后再用目標的MD5值在這個字典中檢索。3系統需求分析31功能需求(一)作為書籍管理員對圖書管理系統的要求有1能按各種方式(比如書名、編號、作者)查詢圖書館的藏書情況。2能按各種方式(比如讀者編號、讀者姓名、姓別)查詢讀者情況。3能對圖書進行添加、刪除。4能夠查詢自己的基本資料。(二)作為借閱管理員對圖書管理系統的要求有1、能夠對圖書進行借閱、歸還、續借的操作。2、能按各種方式(比如書名、編號、作者)查詢圖書館的藏書情況。3、能按各種方式(比如讀者編號、讀者姓名、姓別)查詢讀者情況。4、能夠查詢自己的基本資料。(三)作為系統管理員對圖書管理系統的要求有1能夠對圖書進行借閱、歸還、續借的操作。2能夠對圖書進行查詢和管理。3能夠對讀者進行查詢和管理。4能夠對查看所有用戶的資料并管理用戶。32系統功能分析及說明321系統功能分析系統功能分析是在系統開發的總體任務的基礎上完成。本系統需要完成的功能主要有5部分(一)圖書基本情況的錄入,修改,刪除等基本操作。1書籍類別標準的制定,類別信息的輸入,包括類別編號,類別名稱,備注信息等。2書籍類別信息的查詢,修改,包括類別編號,類別名稱,備注信息等。3書籍信息的輸入,包括書籍編號,書籍名稱,書籍類別,作者名稱,出版社名稱,備注信息等。(二)個人信息模塊。1增加,修改讀者信息。2修改用戶密碼。(三)實現借書功能。1借書信息的輸入,包括借書信息編號,讀書編號,讀者姓名,書籍編號,書籍名稱,借書日期,備注信息等。2借書信息的查詢,修改,包括借書信息編號,讀者編號,讀者姓名,書籍編號,書籍名稱,借書日期,備注信息等。(四)實現還書功能。1還書信息的輸入,包括還書信息編號,讀者編號,讀者姓名,書籍編號,書籍名稱,借書日期,還書日期,備注信息等。2還書信息的查詢和修改,包括還書信息編號,讀書編號,讀者姓名,書籍編號,書籍名稱,借書日期,還書日期,備注信息等。(五)能方便的對圖書進行查詢。322系統數據分析根據以上功能,將圖書管理系統的數據分為數據輸入部分主要包括圖書基本信息的錄入、借閱人基本信息的錄入、用戶基本信息的錄入。數據輸出部分主要是各種統計查詢,包括根據圖書信息(如書名、作者、出版社等)查閱圖書及其借閱信息等。數據處理部分主要涉及借閱和歸還的處理,如一本書借出后,必須在數據庫中將該書標記為已借出,以防出現數據庫中有書但圖書館無書的情況;一本書歸還后,同樣必須在數據庫中將其標記為已經歸還,以便再次借出。33性能需求該管理子系統系統主要實現的是基礎數據的錄入,發布,更新,因此,不管對圖書管理的需要或是學生借書信息的需要,網上的數據必須具有高度的完整性和準確性,這就要求系統的高度安全性,可維護性,可靠性及靈活性。比如圖書基礎類型管理,圖書管理員在錄入圖書信息的時候或是數據庫出現異常而產生差錯,可能會影響學生借書出錯的情況,這就要求系統具有高度的安全性,可維護性,可靠性和靈活性。另外,系統的操作界面要求簡便,通俗,以便于操作。34系統業務流程圖借閱流程圖2借閱流程圖流程圖分析在借閱圖書的界面下,輸入讀者編號后查詢數據庫,若讀者編號存在,則讀取讀者信息,然后判斷讀者是否被鎖定(人為鎖定)、讀者是否過期、讀者是否之前有借閱圖書,如果有借閱圖書,檢查是否有逾期未還的圖書,如果有逾期未還的圖書則禁止借閱新書,如果沒有逾期未還的圖書,則是否讀者借閱的圖書已達上限,如果已達上限則禁止借閱圖書。如果以上條件都滿足,輸入圖書編號后查詢數據庫該圖書是否存在,如果存在則檢查是否在庫,如果已經借出則無法繼續借閱,如果尚未借出則檢查是否讀者的借閱權限是否足夠借閱圖書,如果權限足夠則在確認后即完成圖書的借閱操作。還書流程圖3還書流程圖流程圖分析在歸還圖書的界面下,輸入圖書編號后查詢借閱數據庫里的借閱信息,如果沒有借閱信息就返回查找不到借閱信息的提示,如果有借閱信息則顯示借閱此圖書的讀者信息和該圖書的信息,圖書管理員確認后點擊確認歸還按鈕即完成圖書的歸還操作。續借流程圖4續借流程圖流程圖分析在續借圖書的界面下,輸入圖書編號后查詢借閱數據庫里的借閱信息,如果沒有借閱信息就返回查找不到借閱信息的提示,如果有借閱則檢查該書是否已過借閱期限,如果是則只能歸還圖書不能續借,如果不是檢查是否續借次數已滿,如果續借次數未滿則確認續借后即完成續借操作。4系統設計系統設計是在系統分析的基礎上由抽象到具體的過程主要目標是將系統分析階段所提出的反映了信息需求的系統邏輯方案轉換成可以實施的基于計算機與通信系統的物理(技術)方案,為下一階段系統實施提供必要的技術資料,應符合系統性,靈活性,可靠性。經濟性的要求。41系統架構本系統采用B/S模式。B/S(BROWSER/SERVER)結構即瀏覽器和服務器結構。它是隨著INTERNET技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(BROWSER)實現,但是主要事務邏輯在服務器端(SERVER)實現,形成所謂三層3TIER結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網建立B/S結構的網絡應用,并通過INTERNET/INTRANET模式下數據庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發,能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,INTERNET/INTRANET等)訪問和操作共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。特別是在JAVA這樣的跨平臺語言出現之后,B/S架構管理軟件更是方便、快捷、高效。42數據庫設計421數據庫需求分析(一)需求分析針對一般圖書管理信息系統的需求,通過對圖書管理工作過程的內容和數據流程分析,設計如下面所示的數據項和數據結構讀者信息屬性讀者編號,讀者姓名,性別,單位,是否鎖定,借閱權限,創建時間,有效期限,聯系電話,備注。主鍵讀者編號圖書信息屬性圖書編號,名稱,作者,出版社,ISBN,分類,借閱權限,是否在庫,單價,備注。主鍵圖書編號借閱信息屬性借閱的圖書編號,讀者編號,讀者姓名,借書日期,還書日期,續借。主鍵借閱的圖書編號(二)系統的數據流程圖通過對系統的調查和可行性分析,畫出系統的數據流程圖圖5數據流程圖422數據庫概念結構設計本程序包括的實體有管理員信息實體,讀者信息實體,圖書信息實體,借閱信息實體。423數據庫邏輯結構設計本圖書管理系統的數據庫分為六個表,分別為ADMIN表、ADMINLEVEL表、BOOK表、BORROW表、READER表、READERLEVEL表。其中ADMIN表存儲管理員的資料,例如管理員的編號、姓名、密碼、管理等級等。ADMINLEVEL表存儲管理員等級所對應的權限,例如借閱權限、查詢/添加/修改/刪除圖書、查詢/添加/修改/刪除讀者等權限。BOOK表存儲圖書信息,例如圖書編號、書名、作者、在庫狀態等。BORROW表存儲借閱信息,例如讀者編號、圖書編號、借閱日期、還書日期等。READER表存儲讀者信息,例如讀者編號、姓名、借閱權限等。READERLEVEL表存儲讀者等級所對應的借閱權限,例如借書上限、借閱期限、續借次數、續借期限等。這六個表的關系圖如下圖6數據庫表關系圖以下是每個表的具體描述表1ADMIN表(管理員信息)字段名稱字段類型長度備注管理編號CHAR3主鍵管理姓名VARCHAR30非空密碼VARCHAR30非空管理權限CHAR1非空是否鎖定CHAR1非空創建時間VARCHAR10非空有效期限VARCHAR2非空上次登錄DATETIME8備注VARCHAR100表2ADMINLEVEL表(管理權限)字段名稱字段類型長度備注管理權限CHAR1主鍵借閱CHAR1非空還書CHAR1非空續借CHAR1非空查詢圖書CHAR1非空查詢讀者CHAR1非空圖書操作CHAR1非空讀者操作CHAR1非空館藏統計CHAR1非空借閱分析CHAR1非空基本設置CHAR1非空管理員CHAR1非空管理員等級VARCHAR10非空表3BOOK表(圖書信息)字段名稱字段類型長度備注圖書編號CHAR8主鍵書名VARCHAR80非空作者VARCHAR50非空出版社VARCHAR50非空ISBNVARCHAR15分類VARCHAR50非空借閱權限CHAR1非空是否在庫CHAR1非空單價VARCHAR6備注VARCHAR100表4BORROW表(借閱信息)字段名稱字段類型長度備注圖書編號CHAR8主鍵讀者編號CHAR7非空讀者姓名VARCHAR30非空借書日期VARCHAR10非空還書日期VARCHAR10非空續借CHAR1非空表5READER表(讀者信息)字段名稱字段類型長度備注讀者編號CHAR7主鍵讀者姓名VARCHAR30非空性別CHAR2非空單位VARCHAR30是否鎖定CHAR1非空借閱權限CHAR1非空創建時間VARCHAR10非空有效期限VARCHAR2非空聯系電話VARCHAR13備注VARCHAR100表6READERLEVEL表(讀者權限)字段名稱字段類型長度備注借閱權限CHAR1主鍵限借書數VARCHAR2非空借閱期限VARCHAR2非空續借次數CHAR1非空續借期限VARCHAR2非空43系統功能模塊設計431系統總功能模塊設計圖書管理系統系統管理員借閱管理員圖書管理讀者管理用戶管理查詢處理借書處理還書處理續借查詢增加書目刪除或更新書目增加讀者刪除或更新讀者增加用戶刪除或更新用戶查詢圖書信息查詢讀者信息查詢用戶信息增加書目刪除或更新書目查詢讀者信息書籍管理員圖書管理查詢查詢圖書信息查詢圖書信息查詢讀者信息圖7總體功能模塊圖書管理系統按照管理員的權限不同,將管理員分為系統管理員、書籍管理員、借閱管理員,執行相應的操作。1對于系統管理員,也可叫超級管理員,具有最高的權限,可以進行圖書管理、讀者管理、用戶管理等所有操作。2對于書籍管理員,可以進行圖書管理、查詢信息。3對于借閱管理員,可以進行借書、還書、續借的操作,并且能查詢信息。432模塊功能設計本系統包括的模塊主要有如下幾個部分圖書管理模塊、借閱管理模塊、讀者管理模塊、系統管理模塊、信息查詢模塊、用戶管理模塊具體的功能描述如下圖書管理其功能是管理書庫中圖書的記錄信息,對入庫圖書信息進行管理,并進行查詢。包括圖書添加、刪除、更新。借閱管理其功能是對讀者借閱信息進行管理。包括進行借書,還書,續借操作。讀者管理其功能是對讀者一般信息進行查詢以及維護。添加讀者借書和還書信息。可以記錄新加入的讀者的信息,并且可以對已經存在于數據庫中的讀者的信息進行修改,系統管理其功能是對用戶進行帳戶和密碼管理以及基礎數據維護。包括修改密碼、新增用戶、刪除用戶。信息查詢括借閱信息查詢、書籍信息查詢和用戶列表查詢等功能。通過這些功能,可以通過不同的關鍵字來對書庫中的圖書進行查詢,同時也可以查詢讀者的借閱信息。5系統實現51數據庫連接池的實現數據庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對數據庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。數據庫連接池正是針對這個問題提出來的。數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯提高對數據庫操作的性能。數據庫連接池在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。數據庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素1最小連接數是連接池一直保持的數據庫連接,所以如果應用程序對數據庫連接的使用量不大,將會有大量的數據庫連接資源被浪費。2最大連接數是連接池能申請的最大連接數,如果數據庫連接請求超過此數,后面的數據庫連接請求將被加入到等待隊列中,這會影響之后的數據庫操作。3)如果最小連接數與最大連接數相差太大,那么最先的連接請求將會獲利,之后超過最小連接數量的連接請求等價于建立一個新的數據庫連接。不過,這些大于最小連接數的數據庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時后被釋放。在WEBINF/CLASS下建一個DBPROPERTIES文件,配置如下DRIVERSCOMMICROSOFTJDBCSQLSERVERSQLSERVERDRIVERLOGFILECLOGTXTLIBRARYURLJDBCMICROSOFTSQLSERVER/1270011433DATABASENAMELIBRARY_DATALIBRARYMAXCONN1000LIBRARYUSERSALIBRARYPASSWORD/創建新的連接池PUBLICDBCONNECTIONPOOLSTRINGNAME,STRINGURL,STRINGUSER,STRINGPASSWORD,INTMAXCONNTHISNAMENAMETHISURLURLTHISUSERUSERTHISPASSWORDPASSWORDTHISMAXCONNMAXCONN/裝載荷注冊所有JDBC驅動程序PRIVATEVOIDLOADDRIVERSPROPERTIESPROPSSTRINGDRIVERCLASSESPROPSGETPROPERTY“DRIVERS“STRINGTOKENIZERSTNEWSTRINGTOKENIZERDRIVERCLASSESWHILESTHASMOREELEMENTSSTRINGDRIVERCLASSNAMESTNEXTTOKENTRIMTRYDRIVERDRIVERDRIVERCLASSFORNAMEDRIVERCLASSNAMENEWINSTANCEDRIVERMANAGERREGISTERDRIVERDRIVERDRIVERSADDELEMENTDRIVERLOG“成功注冊JDBC驅動程序“DRIVERCLASSNAMECATCHEXCEPTIONELOG“無法注冊JDBC驅動程序“DRIVERCLASSNAME“,錯誤“E/創建新的連接PRIVATECONNECTIONNEWCONNECTIONCONNECTIONCONNULLTRYIFUSERNULLCONDRIVERMANAGERGETCONNECTIONURLELSECONDRIVERMANAGERGETCONNECTIONURL,USER,PASSWORDLOG“連接池“NAME“創建一個新的連接“CATCHSQLEXCEPTIONELOGE,“無法創建下列URL的連接“URLRETURNNULLRETURNCON52用戶登陸的實現當用戶輸入用戶名和密碼登陸系統時,在ADMIN_LOGINJSP頁面中通過調用ADMIN類中的ADMINLOGIN方法,將用戶名和密碼與數據庫中事先存放的姓名和密碼進行比較,如果相同,則登陸成功,否則提示賬號或密碼錯誤。實現該頁面的相關代碼如下PUBLICBOOLEANADMINLOGINHTTPSERVLETREQUESTRESTHROWSEXCEPTIONREQUESTRES/獲取頁面請求信息DATABASEDBNEWDATABASEDATETIMEDTNEWDATETIMEMD5MD5NEWMD5ADMINIDREQUESTGETPARAMETER“ADMINID“ADMINPWDDBTOSQLMD5GETMD5OFSTRREQUESTGETPARAMETER“ADMINPWD“DBPREPARESTATEMENT“SELECTFROMADMINWHERE管理編號AND密碼“DBSETSTRING1,ADMINIDDBSETSTRING2,ADMINPWDRESULTSETRSDBEXECUTEQUERYIFRSNEXTADMINNAMERSGETSTRING2ADMINPOWERINTEGERPARSEINTRSGETSTRING4ADMINLOCKEDRSGETSTRING5ADMINCTRSGETSTRING6ADMINAVAILINTEGERPARSEINTRSGETSTRING7ADMINLLTRSGETSTRING8ADMINCOMMENTRSGETSTRING9RSCLOSESTRINGNEWLLTDTGETDATETIME/更新最后登錄時間DBEXECUTEUPDATE“UPDATEADMINSET上次登錄“NEWLLT“WHERE管理編號“ADMINID“DBCLOSERETURNTRUEELSERSCLOSERETURNFALSE53圖書借閱的實現當輸入圖書編號和讀者編號后,點擊“借閱”,出現圖書詳細資料和讀者詳細資料,確認無誤后,點擊“確認借閱”,此時,通過調用BORROWBOOK類中的EXEBORROW方法執行借閱。該方法首先獲取頁面的請求信息,然后查詢數據庫得到相應的讀者信息,并計算出還書時間,把借閱信息寫入BORROW表中,更新數據庫。PUBLICBOOLEANEXEBORROWHTTPSERVLETREQUESTRESTHROWSEXCEPTIONTRYDATABASEDBNEWDATABASEDATETIMEDTNEWDATETIMEREQUESTRES/獲取頁面請求信息STRINGNEWBOOKSNDBTOSQLREQUESTGETPARAMETER“BOOKSN“STRINGNEWREADERSNDBTOSQLREQUESTGETPARAMETER“READERSN“DBPREPARESTATEMENT“SELECT讀者姓名,借閱權限FROMREADERWHERE讀者編號“/獲取該讀者信息DBSETSTRING1,DBTOSQLNEWREADERSNRESULTSETRSDBEXECUTEQUERYRSNEXTSTRINGNEWREADERNAMERSGETSTRING1STRINGNEWREADERPOWERRSGETSTRING2DBPREPARESTATEMENT“SELECT借閱期限FROMREADERLEVELWHERE借閱權限“DBSETSTRING1,NEWREADERPOWERRSDBEXECUTEQUERYRSNEXTINTNEWRPBTINTEGERPARSEINTRSGETSTRING1RSCLOSESTRINGNEWCDDBTOSQLDTGETDATE/計算還書日期STRINGNEWRDDBTOSQLDTGAINMONTHNEWRPBTDBPREPARESTATEMENT“INSERTINTOBORROWVALUES,0“/將借閱信息寫入DBSETSTRING1,NEWBOOKSNDBSETSTRING2,NEWREADERSNDBSETSTRING3,NEWREADERNAMEDBSETSTRING4,NEWCDDBSETSTRING5,NEWRDDBEXECUTEUPDATEDBPREPARESTATEMENT“UPDATEBOOKSET是否在庫0WHERE圖書編號“/將圖書不在庫信息寫入DBSETSTRING1,NEWBOOKSNDBEXECUTEUPDATEDBCLOSERETURNTRUECATCHEXCEPTIONERETURNFALSE54添加用戶的實現當要添加用戶時,在ADMIN_ADD_ADMINJSP頁面中,通過調用ADMIN類中的ADDADMIN方法來進行添加。該方法首先獲取頁面的請求信息,然后判斷此管理員是否具有添加用戶的權限,如果有,產生新的用戶編號,將客戶端傳來的信息通過“INSERTINTO”語句添加進ADMIN表中,同時,用戶密碼用MD5進行加密。PUBLICBOOLEANADDADMINHTTPSERVLETREQUESTRES,HTTPSESSIONSESTHROWSEXCEPTIONDATABASEDBNEWDATABASEADMINADMINTHISREQUESTRES/獲取頁面請求信息SESSIONSES/從SESSION中獲取管理員IDSTRINGSUPERVISORDBTOSQLSTRINGSESSIONGETATTRIBUTE“SUPERVISOR“IFADMINISADMINSASTRINGADMINSNCREATEADMINSN/產生新的用戶編號IFADMINSNEQUALS“000“ERRMSG“無法產生新的用戶編號,無法添加新用戶,請聯系高級管理員“RETURNFALSEMD5MD5NEWMD5ADMINIDREQUESTGETPARAMETER“ADMINID“ADMINPWDDBTOSQLMD5GETMD5OFSTRREQUESTGETPARAMETER“ADMINPWD“ADMINIDREQUESTGETPARAMETER“ADMINSN“ADMINNAMEREQUESTGETPARAMETER“ADMINNAME“ADMINLOCKEDREQUESTGETPARAMETER“ADMINLOCKED“ADMINPOWERINTEGERPARSEINTREQUESTGETPARAMETER“ADMINPOWER“ADMINCTREQUESTGETPARAMETER“ADMINCT“ADMINAVAILINTEGERPARSEINTREQUESTGETPARAMETER“ADMINAVAIL“ADMINLLT“ADMINCOMMENTREQUESTGETPARAMETER“ADMINCOMMENT“TRYDBPREPARESTATEMENT“INSERTINTOADMINVALUES,“/添加用戶信息DBSETSTRING1,ADMINIDDBSETSTRING2,ADMINNAMEDBSETSTRING3,ADMINPWDDBSETINT4,ADMINPOWERDBSETSTRING5,ADMINLOCKEDDBSETSTRING6,ADMINCTDBSETINT7,ADMINAVAILDBSETSTRING8,ADMINLLTDBSETSTRING9,ADMINCOMMENTDBEXECUTEUPDATERETURNTRUECATCHSQLEXCEPTIONEEPRINTSTACKTRACEERRMSG“添加用戶失敗,無法寫入數據庫“RETURNFALSEFINALLYDBCLOSEELSEERRMSG“管理編號為“SUPERVISOR“的管理員沒有權限添加用戶“RETURNFALSE55系統界面圖8圖書管理系統的登錄頁面圖9圖書管理系統的主頁面圖10圖書借閱頁面6系統測試61界面測試界面測試是測試過程中比較簡單直觀的一種測試方法,只要細心地按界面要求核對就行了。下面是界面測試中出現的BUG及解決方法1錯別字,界面中的標題或者文本內容中出現了錯別字。解決方法找到錯別字所在代碼,將字修改正確。2頁面類似的內容中,明顯有字體,字號不同的情況,使界面整體風格看上去不一致,解決方法看一下是否沒有定義CSS,如果定義了仍然有錯,則看是否有調用。62功能測試顧名思義,功能測試主要是測試程序模塊是否實現了設計中所有要求的功能。1用戶登陸測試輸入用戶名和密碼后,點擊登陸,成功,通過測試。2修改密碼測試登陸后修改密碼,然后重新登陸,成功,通過測試。3添加用戶,圖書,讀者測試登陸系統后,添加新的用戶,圖書,讀者,成功,通過測試。4登陸失敗測試輸入錯誤的用戶名
評論
0/150
提交評論