圖書館書管理系統(tǒng)設(shè)計和實現(xiàn) 計算機專業(yè)_第1頁
圖書館書管理系統(tǒng)設(shè)計和實現(xiàn) 計算機專業(yè)_第2頁
圖書館書管理系統(tǒng)設(shè)計和實現(xiàn) 計算機專業(yè)_第3頁
圖書館書管理系統(tǒng)設(shè)計和實現(xiàn) 計算機專業(yè)_第4頁
圖書館書管理系統(tǒng)設(shè)計和實現(xiàn) 計算機專業(yè)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄中文摘要 1英文摘要 21緒論 31.1課題背景 31.2研究意義 31.3研究內(nèi)容和章節(jié)結(jié)構(gòu) 32 系統(tǒng)開發(fā)相關(guān)技術(shù) 52.1Java語言 52.2JavaEE相關(guān)介紹 52.3Eclipse相關(guān)介紹 62.4MySQL相關(guān)介紹 62.5JDBC關(guān)介紹 73 需求分析 83.1可行性分析 83.1.1技術(shù)可行性 83.1.2經(jīng)濟可行性 83.1.3操作可行性 83.2功能需求分析 93.2.1用戶登錄模塊 93.2.2圖書類別管理模塊 93.2.3圖書信息管理模塊 103.3非功能需求分析 113.3.1安全性需求 113.3.2硬件需求 113.3.3維護需求 114 系統(tǒng)設(shè)計 124.1系統(tǒng)結(jié)構(gòu)設(shè)計 124.2系統(tǒng)功能設(shè)計 124.2.1登陸功能 124.2.3圖書信息管理功能 134.3數(shù)據(jù)庫設(shè)計 145 系統(tǒng)實現(xiàn) 155.1用戶登錄界面 155.2圖書類別管理界面 165.3圖書信息管理界面 185.4功能界面實現(xiàn)原理 215.5數(shù)據(jù)庫實現(xiàn) 216 系統(tǒng)測試 236.1用戶登錄測試 236.2圖書類別管理測試 236.3圖書信息管理測試 247總結(jié)與展望 257.1總結(jié) 257.2展望 25參考文獻 26致謝 27摘要現(xiàn)代大多數(shù)學校圖書藏量種類繁多,各種類別的圖書沒有一個統(tǒng)一的管理平臺,不同類別的圖書區(qū)分上容易混淆,同種類別的圖書入館出館記錄困難。因此,開發(fā)此款軟件成功解決了上述問題。圖書管理系統(tǒng)更注重輕量化,管理人員只需進行簡單操作,即可完成圖書類別的增刪改查操作和同種類別下圖書的增刪改查操作。這是一款以C/S為架構(gòu)方式、采用Eclipse為開發(fā)環(huán)境、利用Sqlyog作為數(shù)據(jù)庫服務(wù)器、并基于Java語言開發(fā)的圖書管理系統(tǒng)。本系統(tǒng)具有運行速度快、安全性高、移植性強等特點。關(guān)鍵詞:圖書管理;Java;數(shù)據(jù)庫;BookManagementSystemBasedOnJavaAbstractMostmodernschoolbooksreservephyleticandvarious,varioustypesofbookswithoutaunifiedmanagementplatform,differentcategoriesofbookstodistinguisheasilyconfused,withdifficultcategoriesofbooksinthelibrarythelibraryrecord.Therefore,thedevelopmentofthissoftwaresuccessfullysolvedtheaboveproblems.Thebookmanagementsystempaysmoreattentiontothelightquantization,themanagementpersonnelonlyneedtocarryoutthesimpleoperation,cancompletetheincrease,delete,changeandcheckoperationofthebookcategoryandtheincrease,delete,changeandsearchoperationofthebookunderthesamecategory.ThisisabookmanagementsystemusingEclipseasthedevelopmentenvironment,Sqlyogasthedatabaseserver,andbasedontheJavalanguage.Thissystemhasthecharacteristicsoffastrunningspeed,highsecurityandstrongportability.Keywords:bookmanagement;Java;Database緒論1.1課題背景自從進入二十一世紀后,飛鴿傳書、快馬加鞭的書信方式的信息傳遞途徑退出了歷史的舞臺;信息化、電子化的信息交流方式隨著計算機科學的發(fā)展成為人類文明進步的重大推動器,計算機科學也被應(yīng)用到了我們的日常生活中的每一個領(lǐng)域。圖書館在我們的大學生活中扮演著重要的角色,學生們在此借閱圖書、學習、交流。傳統(tǒng)的圖書管理方式存在著許多缺點,例如:圖書種類區(qū)分混亂,無法按類上架;館內(nèi)圖書丟失時,不易發(fā)覺;學生在需要借閱圖書時,需要圖書管理員查找圖書館里是否擁有此書、是否已被借出等。相比舊時期單純靠人工對不同種類圖書進行區(qū)分,對同種類圖書進行入館出館記錄,這不僅會增加圖書管理員的勞動成本、不必要的工作負擔,還會不可避免的出現(xiàn)信息記錄錯誤、信息不易修改、信息丟失等傳統(tǒng)管理制度上的缺。1.2研究意義飛速發(fā)展的社會與計算機科學的變革有著密不可分的關(guān)系,高度信息化的今天,高效便捷快速成為人們所追求的一種工作方式,雖然計算機程序在各個方面讓使用者體驗到了其帶來與傳統(tǒng)管理模式所不可比擬的完成工作的方式,但有些程序操作起來復雜繁瑣,這就使開發(fā)者不能根本的理解到程序在研究和開發(fā)時的初衷,一些用戶不得不繼續(xù)使用工作量龐大的手工作業(yè);時間觀念早已深入人心,所以圖書管理系統(tǒng)為廣大圖書管理員帶來了與以往的管理方式極大的不同使用體驗。圖書管理系統(tǒng)可以根據(jù)用戶對該系統(tǒng)功能的需要和所提供的數(shù)據(jù),在操作界面實現(xiàn)對所有的圖書信息的增添、刪除,更改、查找功能,所以盡快實現(xiàn)圖書管理信息化,規(guī)范圖書管理制度是當今高校信息化發(fā)展的方向。1.3研究內(nèi)容和章節(jié)結(jié)構(gòu)這是一款以C/S為架構(gòu)方式、采用Eclipse為開發(fā)環(huán)境、利用MySql為數(shù)據(jù)庫服務(wù)器、并基于Java語言開發(fā)的圖書管理系統(tǒng)。首先,通過前期調(diào)研,對圖書管理員的需求進行詳細分析,設(shè)計了圖書管理系統(tǒng)的登錄模塊,圖書類別管理模塊,圖書信息管理模塊。其次,根據(jù)詳細的設(shè)計實現(xiàn)了圖書管理員對圖書分類的增刪改查功能和對圖書信息的增刪改查功能。最后,對圖書管理系統(tǒng)進行測試,若測試結(jié)果與預期結(jié)果相符則測試通過,若不符,則還需對系統(tǒng)進行改進。第1章主要講述了圖書管理系統(tǒng)課題的開發(fā)背景和意義。第2章介紹了系統(tǒng)環(huán)境的搭建與開發(fā)過程中用到的主要技術(shù)。第3章對圖書管理系統(tǒng)進行需求分析,通過了解實際應(yīng)用環(huán)境與圖書管理員的需求,做了可行性分析與功能需求分析,確定了要開發(fā)的功能。第4章主要是對要開發(fā)的系統(tǒng)做設(shè)計,把上個章節(jié)總結(jié)出來的結(jié)果進行分析再分解。把程序帶入到系統(tǒng)設(shè)計的階段。通過系統(tǒng)設(shè)計環(huán)節(jié)能夠得出具體的實現(xiàn)方法。第5章通過編寫代碼實現(xiàn)了前幾章節(jié)中所提出的功能,并且將結(jié)果以流程圖和實際效果圖的方式進行展示,為系統(tǒng)的最終測試提供了測試項目。第6章主要描述了針對該系統(tǒng)的測試。通過代碼實現(xiàn)所完成的功能之后,需要對該系統(tǒng)進行針對性的測試。測試方法為黑盒測試,進行測試之后才能了解到某個功能的漏洞。系統(tǒng)開發(fā)相關(guān)技術(shù)2.1Java語言Java語言是一種通過解釋方式來執(zhí)行的語言,其語法規(guī)則和C++類似。同時,它又是一種跨平臺的程序設(shè)計語言。用Java語言編寫的程序,可以在任何設(shè)備和平臺上運行。它在技術(shù)層面擁有較其他語言的通用性兼容性較強、高效性:在幫助人們擺脫繁重復雜的數(shù)據(jù)中體現(xiàn)了其順應(yīng)時代的節(jié)省時間精力的優(yōu)越性、跨平臺依靠數(shù)據(jù)庫實現(xiàn)信息的移植性和穩(wěn)定的安全性,在我們的日常生活中,例如個人電腦、各種大小的數(shù)據(jù)中心、甚至游戲的控制平臺,和我國重點發(fā)展的超級計算機項目,和與我們平時交流隨處可見的移動電話及互聯(lián)網(wǎng)等等,他們都離不開Java語言。Java最初的出現(xiàn)是為了各種消費式的電子產(chǎn)品的內(nèi)嵌入式芯片而設(shè)計的,而后用來發(fā)設(shè)計互聯(lián)網(wǎng)的應(yīng)用程序;我們知道作為對計算機科學有革命性意義的c++語言在Java語言出現(xiàn)后,面臨了強有力的沖擊,在當今“云”技術(shù)和移動端電子產(chǎn)品的巨大需因求下,Java因其獨有的優(yōu)勢形成的它廣闊的應(yīng)用前景和龐大的市場需求;與我們熟知的c、c++語言相比,Java的編程語言風格類似與前兩者,而Java更是一種單純的面向?qū)ο蟮某绦蚓帉懺O(shè)計語言,但與c、c++語言不同的是,Java語言摒棄了前者在編寫時易引起錯誤的指針(被引用取代)、運算符的重載等一些特型,并且添加了回收無需在被引用的對象在內(nèi)存中所占用的空間及垃圾回收功能,真正意義上的幫助程序編寫員使其不再為了內(nèi)存的管理費盡心思;Java擁有多方面的優(yōu)勢:跨平臺性(在不相關(guān)的平臺中,可以順利運行)、面向?qū)ο笮裕ㄊ钩绦騿T可以集中精力于類的應(yīng)用及設(shè)計上)、動態(tài)、健壯性、分布式。再進過現(xiàn)代最初程序設(shè)計的c,更進于c++,現(xiàn)在的Java通過對于前者的繼承,擁有了使大家易接受的特性。2.2JavaEE相關(guān)介紹 在我們編寫jsp代碼時,因為龐大的各種代碼和各種各樣的業(yè)務(wù)邏輯纏在一團,并且他們之間融嵌,對于程序的擴展和日常的維護有著極其不便的影響。每當業(yè)務(wù)需要不同更改時,對程序的編寫員和完善設(shè)計的人都有著很大的工作負擔。為此為了更好地對程序的進行維護和擴展,這時就需要JavaEE技術(shù)來對項目的進一步的開展研發(fā);其中JavaEE技術(shù)包括:表示層技術(shù)、中間層技術(shù)、數(shù)據(jù)層技術(shù)。作為Java2技術(shù)三大平臺之一,它既繼承了應(yīng)用框架,他的出現(xiàn)不僅使程序的開發(fā)降低了成本,更重要的是其規(guī)避了C/S的缺點。它擁有三層結(jié)構(gòu),即用戶層、應(yīng)用層、數(shù)據(jù)庫服務(wù)器,可以使用戶所操作的界面及盡可能的變得簡潔簡單。2.3Eclipse相關(guān)介紹Eclipse是一種支持跨平臺的靈活的集成開發(fā)壞境,其本身也就是一個框架平臺,它是基于Java語言的可以繼續(xù)擴展的開發(fā)平臺,雖然eclipse是使用Java語言進行的開發(fā),但它不僅僅局限于對于Java語言的功能實現(xiàn),我們所熟知的編程語言如:Android、c、c++等語言也可以使用;它也是開放源代碼的軟件,eclipse對不同的用戶群體有不同的概念,對一些人來說,eclipse是一個免費的Java開發(fā)平臺。對另一部分人來說,eclipse是靈活的、能適應(yīng)現(xiàn)有的開發(fā)語言和未來某種新語言的開發(fā)環(huán)境。對其他人來說,eclipse是一個完善的、能夠布署高級的跟上時代的運行平臺。2.4MySQL相關(guān)介紹MYSQL是一種專門用來于數(shù)據(jù)庫通信的語言。它有一下優(yōu)點:使用成本低甚至免費,原因是因為它是開放源代碼的;性能良好,執(zhí)行速度快;簡單易操作,很容易的就可以進行安裝和使用。無論是對中小型項目的開發(fā)上,還是對世界知名網(wǎng)站的搭建上,MYSQL以它安全、穩(wěn)定、高效等出色的性能使它成為當下最受人們喜愛的數(shù)據(jù)庫管理系統(tǒng),同時也在全球范圍內(nèi)得到了使用和安裝[2]。該系統(tǒng)由一家瑞典公司開發(fā),是當下應(yīng)用最廣泛的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。因為它性能的出色,也可匹配其他的系統(tǒng)共同工作,在開發(fā)程序中可提供較為便利穩(wěn)定的環(huán)境;MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),而它與另外管理系統(tǒng)不同的是,在將數(shù)據(jù)存儲時,它不是將數(shù)據(jù)統(tǒng)一的放在同一個數(shù)據(jù)庫當中,而是存放在不同的獨立的表之中這種獨特的存儲方式使其擁有了更加靈活的性能,并大大的加快了運行的速度;MySQL所使用的語言是在訪問數(shù)據(jù)庫時最標準的語言,也是我們在平時建立與數(shù)據(jù)庫連接時最常用的語言。它時引用c語言和c++語言編寫的,并且可以使用不同的編譯器對其進行測試,這樣的方式使它擁有了最原始代碼可以靈活移植的特性;又因為MySQL在與其他操作系統(tǒng)可以輕易的實現(xiàn)建立且需要費用幾乎為零,所以正是因為它這種開放源碼的軟件,使它擁有了其他大型數(shù)據(jù)庫所沒有的親民度。Sqlyog是一種擁有整潔清理規(guī)劃,性能出眾的圖形化對于MySQL數(shù)據(jù)庫系統(tǒng)的管理工具,這種工具的使用,可以使我們在全球任意一個通有互聯(lián)網(wǎng)的設(shè)備中來隨時隨地的遠程維護MySQL數(shù)據(jù)庫系統(tǒng);它擁有建立數(shù)據(jù)庫,刪除數(shù)據(jù)庫,索引管理,監(jiān)察數(shù)據(jù)庫并對其進行修護分析,創(chuàng)建數(shù)據(jù)庫日志等一系列對于管理MySQL數(shù)據(jù)庫的功能,可以近乎完美相契合。2.5JDBC關(guān)介紹擁有了數(shù)據(jù)庫和相關(guān)應(yīng)用程序后,為了實現(xiàn)兩者的連接,就需要使用JDBC作為接口將數(shù)據(jù)庫中的數(shù)據(jù)與面向?qū)ο蟮膽?yīng)用程序搭建聯(lián)系起來;JDBC全稱是Java數(shù)據(jù)庫連接標準,同時它也是Java核心類庫的一部分,目前共有四類JDBC驅(qū)動:一:native-API,partlyJavadriver此種驅(qū)動不適合連接數(shù)據(jù)庫,因為使用此種驅(qū)動的前提是與其相連的客戶端機器必須擁有配套的二進制代碼。二:nativeprotocol,pureJavadriver此種驅(qū)動適用于以網(wǎng)絡(luò)為關(guān)系紐帶連接數(shù)據(jù)庫,因為這種驅(qū)動不僅能夠在沒有客戶端軟件的情況下使用,還可以將JDBC的調(diào)用變?yōu)榫W(wǎng)絡(luò)協(xié)議供后臺數(shù)據(jù)庫使用。三:JDBC-ODBCbridgedriver此種驅(qū)動只適用于數(shù)據(jù)庫使用ODBC驅(qū)動的客戶端。因為它不僅與Java兼容性差,還需要使用這類驅(qū)動的客戶端安裝與其對應(yīng)的ODBC驅(qū)動。四:JDBC-NetpureJavadriver此種驅(qū)動適用于含有中間件的分布式應(yīng)用。因為它能夠?qū)BC的調(diào)用轉(zhuǎn)換為獨立于數(shù)據(jù)庫的網(wǎng)絡(luò)協(xié)議。需求分析3.1可行性分析在應(yīng)用程序的設(shè)計和開發(fā)之初,為了可以使程序更好的適應(yīng)使用方的需求,以及所對應(yīng)項目前的具體現(xiàn)狀如:市場的各項要求,應(yīng)用開發(fā)中資源的供需能力,項目所需開發(fā)的大小,應(yīng)用的具體技術(shù),有無對其它項目的影響,整體研發(fā)所需資金,可否有效的實現(xiàn)盈利等方面都需要進行系統(tǒng)的分析和評估。無論是在設(shè)計開發(fā)的初期還是在即將實現(xiàn)運行的中后期,都應(yīng)該及時的對當下所面對的各項問題進行結(jié)合實際的合理解決;從商榷設(shè)計開發(fā)的意義到實際的投入到多種功能的編入,以及最后的測試運用,都離不開科學性、合理性、實際性、針對性的需求分析,所以需求分析是整個過程的基石。3.1.1技術(shù)可行性由于Java平臺幾乎已經(jīng)嵌入了所有的操作系統(tǒng),并且可以編寫一次,就能夠在大部分系統(tǒng)中運行,所以本系統(tǒng)采用Java為開發(fā)平臺。因為這次的選題“圖書管理系統(tǒng)”是運行在PC端的輕量級軟件,編譯過程中遇到代碼潛在的問題,可以通過請求指導老師幫助或者上網(wǎng)查閱資料來解決,所以開發(fā)此圖書管理系統(tǒng)成為合適的選題。3.1.2經(jīng)濟可行性隨著學校信息化管理水平的提高,以目前學校已經(jīng)擁有了良好的硬件設(shè)施、軟件環(huán)境以及暢通的校園寬帶,無需再購置新的硬件設(shè)備和軟件而增加開支,綜合來看,在經(jīng)濟上足以配置一個新的圖書管理系統(tǒng)。此外,若圖書館采用本系統(tǒng),就可實現(xiàn)不必再用手工登記整理圖書資料,避免人員浪費,也方便對圖書數(shù)據(jù)的管理,為圖書管理員節(jié)省時間,提高了效率。3.1.3操作可行性國內(nèi)高等院校已有管理信息系統(tǒng)應(yīng)用的案例,管理員使用這些管理軟件不再是難事。圖書管理系統(tǒng)界面簡潔,操作簡單,不需要對管理員進行專門的培訓也可以熟練使用本系統(tǒng)。綜上所述,圖書管理系統(tǒng)充分利用了學?,F(xiàn)有的計算機軟硬件資源,技術(shù)成熟,成本低,操作便捷,管理高效,使圖書管理擺脫人工處理方式,實現(xiàn)信息化管理和數(shù)字化處理。因此,本系統(tǒng)的實施是可行的。3.2功能需求分析圖書管理系統(tǒng)是以減少圖書管理員工作量,便捷查詢保存圖書信息等功能為設(shè)計初衷,即符合圖書管理員的實際管理需求和館藏圖書數(shù)量等現(xiàn)實情況來設(shè)置相對應(yīng)的具體功能的計算機程序,據(jù)此該系統(tǒng)除登錄模塊外,劃分出另外兩種功能模塊:圖書類別管理模塊、圖書信息管理模塊。3.2.1用戶登錄模塊用戶登陸模塊是用戶在使用圖書管理系統(tǒng)時進入的首個模塊,為了保證圖書信息的安全性,防止他人惡意篡改圖書信息,在此設(shè)置用戶登錄模塊,用于登錄用戶身份信息驗證,登錄用戶通過輸入用戶名和密碼,與后臺數(shù)據(jù)庫信息進行匹配,若匹配成功,則可以進入系統(tǒng)對圖書進行相應(yīng)的管理;若匹配不成功,則會提示相關(guān)的錯誤,提醒用戶重新輸入正確的用戶名及密碼。用戶登錄用例圖如圖3-1所示。圖3-1用戶登錄用例圖3.2.2圖書類別管理模塊經(jīng)過前期的調(diào)查得知,圖書管理員在對圖書類別進行整理時,主要是對圖書類別進行增加與修改功能,為了方便圖書管理員的后續(xù)工作需要,在此,我有對圖書管理模塊增加了類別查詢與類別刪除功能。為了簡化操作界面,我將圖書類別的查詢、修改與刪除功能全部歸類為圖書類別維護模塊。圖書類別管理模塊用例圖如圖3-2所示。圖3-2圖書類別管理模塊用例圖3.2.3圖書信息管理模塊同樣,圖書信息管理的需求也有四點:即圖書信息的添加、查詢、修改與刪除。為了統(tǒng)一界面風格,同樣將圖書信息的查詢、修改、刪除操作歸類為圖書信息維護操作。圖書信息管理模塊用例圖如圖3-3所示。圖3-3圖書信息管理模塊用例圖3.3非功能需求分析3.3.1安全性需求圖書管理員在登錄圖書管理系統(tǒng)時,需要進行身份的認證,本系統(tǒng)采用的身份驗證方式為用戶名及密碼,在一定程度上,保護了圖書存儲信息的安全。3.3.2硬件需求CPU:GenuineInter(R)CPUT2080@1.73或以上(服務(wù)器);內(nèi)存:1GB或以上(服務(wù)器);硬盤:120GB以上(服務(wù)器)。3.3.3維護需求維護性具體包括易分析性、易改變性、穩(wěn)定性等相關(guān)內(nèi)容。對于易用性,考慮到不同用戶的操作熟練度不同,所以在開發(fā)中,讓操作界面更簡潔、更方便,每次進行操作功能后,都會進行友好信息的提示。對于穩(wěn)定性,系統(tǒng)可能會因為用戶的手誤造成不必要的數(shù)據(jù)丟失或者數(shù)據(jù)更改,本系統(tǒng)加入了驗證窗口,當用戶進行某一指定操作時,系統(tǒng)會彈窗提示是否要進行操作,只有當用戶點擊確定之后才能執(zhí)行指定的操作。系統(tǒng)設(shè)計4.1系統(tǒng)結(jié)構(gòu)設(shè)計圖書管理系統(tǒng)經(jīng)過功能分解后分為三個模塊:用戶登錄模塊、圖書類別管理模塊、圖書信息管理模塊。系統(tǒng)結(jié)構(gòu)設(shè)計圖如圖4-1所示。圖4-1圖書管理系統(tǒng)結(jié)構(gòu)圖4.2系統(tǒng)功能設(shè)計4.2.1登陸功能登錄用戶在進行登陸操作時,需要輸入正確的用戶名及密碼,與后臺數(shù)據(jù)庫已錄入身份信息進行匹配,若匹配成功,則可以進入系統(tǒng)對圖書進行相應(yīng)的管理;若匹配不成功,則會提示相關(guān)的錯誤,提醒用戶重新輸入正確的用戶名及密碼。登錄功能設(shè)計圖如圖4-2所示。圖4-2登錄功能設(shè)計圖4.2.2圖書類別管理功能圖書類別管理功能分為圖書類別添加功能與圖書類別維護功能,圖書類別維護功能內(nèi)又包含圖書的查詢、修改與刪除功能,圖書類別管理功能圖如圖4-3所示。圖4-3圖書類別管理功能4.2.3圖書信息管理功能圖書信息管理功能分為圖書信息添加功能與圖書信息維護功能,圖書信息維護功能內(nèi)又包含圖書的查詢、修改與刪除功能,圖書信息管理功能圖如圖4-4所示。圖4-4圖書信息管理功能4.3數(shù)據(jù)庫設(shè)計該系統(tǒng)的最主要功能就是用戶對數(shù)據(jù)進行相應(yīng)功能的實現(xiàn),想要對數(shù)據(jù)進行操作,就必須與存放學生信息的數(shù)據(jù)庫進行連接,完整的數(shù)據(jù)庫是對進行數(shù)據(jù)增刪改查的重要前提。在錄入龐大的數(shù)據(jù)時難免會混淆數(shù)據(jù)的來源,為了避免和減少數(shù)據(jù)錄入時的錯誤,系統(tǒng)數(shù)據(jù)庫分別設(shè)置了用戶表、圖書類別表、圖書信息表。其中用戶表是用來保存使用此系統(tǒng)用戶的信息,具體表格設(shè)計如下:表4-1用戶表是否為主鍵字段名字段類型字段大小說明是IdInt11用戶編號否userNameVarchar20用戶名否PasswordVarchar20用戶密碼圖書類別表主要來保存圖書具體類別和類別詳細信息,具體表格設(shè)計如下:表4-2圖書類別表是否為主鍵字段名字段類型字段大小說明是IdInt11圖書編號否bookTypeNameVarchar20圖書類別否bookTypeDescVarchar1000類別信息圖書信息表主要用來保存和錄入圖書的基本信息,如名稱、作者、價格等,具體表格設(shè)計如下:表4-3圖書信息表是否為主鍵字段名字段類型字段大小說明是IdInt11圖書編號否bookNameVarchar20圖書名稱否AuthorVarchar20作者否SexVarchar10性別否PriceFloat價格否bookTypeIdInt11圖書類別號否bookDescVarchar1000圖書信息系統(tǒng)實現(xiàn)5.1用戶登錄界面當用戶進入系統(tǒng)時,圖書管理員根據(jù)自己的身份信息,輸入具有唯一標識的用戶名和密碼,進行登陸;若輸入出現(xiàn)錯誤,可清空數(shù)據(jù),重新進行輸入。登錄界面如圖5-1所示,圖書管理界面如5-2所示。圖5-1登陸界面圖5-2圖書管理系統(tǒng)主界面具體功能實現(xiàn)代碼:publicclassUserDao{ publicUserlogin(Connectioncon,Useruser)throwsException{ UserresultUser=null; Stringsql="select*fromt_userwhereuserName=?andpassword=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,user.getUserName()); pstmt.setString(2,user.getPassword()); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ resultUser=newUser(); resultUser.setId(rs.getInt("id")); resultUser.setUserName(rs.getString("userName")); resultUser.setPassword(rs.getString("password")); } returnresultUser; }5.2圖書類別管理界面圖書類別管理界面包括對圖書類別的添加與維護功能,為了頁面的簡潔性與操作的便利性,將圖書類別的查詢、修改與刪除操作統(tǒng)一放在了維護功能內(nèi)。在圖書類別添加界面,在添加完類別與類別的簡單描述之后,數(shù)據(jù)庫將通過insert語句,完成對圖書類別的添加;在維護功能頁面,數(shù)據(jù)庫將通過select語句、update語句、delete語句分別對圖書類別進行查詢、修改、刪除操作。圖書類別添加界面如圖5-3所示,圖書類別維護界面如圖5-4所示。圖5-3圖書類別添加界面圖5-4圖書類別維護界面具體功能實現(xiàn)代碼:publicclassBookTypeDao{ publicintadd(Connectioncon,BookTypebookType)throwsException{ Stringsql="insertintot_bookTypevalues(null,?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,bookType.getBookTypeName()); pstmt.setString(2,bookType.getBookTypeDesc()); returnpstmt.executeUpdate(); } publicResultSetlist(Connectioncon,BookTypebookType)throwsException{ StringBuffersb=newStringBuffer("select*fromt_bookType"); if(StringUtil.isNotEmpty(bookType.getBookTypeName())){ sb.append("andbookTypeNamelike'%"+bookType.getBookTypeName()+"%'"); } PreparedStatementpstmt=con.prepareStatement(sb.toString().replaceFirst("and","where")); returnpstmt.executeQuery(); } publicintdelete(Connectioncon,Stringid)throwsException{ Stringsql="deletefromt_bookTypewhereid=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,id); returnpstmt.executeUpdate(); } publicintupdate(Connectioncon,BookTypebookType)throwsException{ Stringsql="updatet_bookTypesetbookTypeName=?,bookTypeDesc=?whereid=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,bookType.getBookTypeName()); pstmt.setString(2,bookType.getBookTypeDesc()); pstmt.setInt(3,bookType.getId()); returnpstmt.executeUpdate(); }}5.3圖書信息管理界面圖書信息管理界面包括對圖書信息的添加與維護功能,為了頁面的簡潔性與操作的便利性,將圖書信息的查詢、修改與刪除操作統(tǒng)一放在了維護功能內(nèi)。在圖書信息添加界面,在添加完圖書的名稱、作者、價格等信息后,數(shù)據(jù)庫將通過insert語句,完成對圖書信息的添加;在維護功能頁面,數(shù)據(jù)庫將通過select語句、update語句、delete語句分別對圖書信息進行查詢、修改、刪除操作,圖書信息添加界面如圖5-5所示,圖書信息維護界面如圖5-6所示。圖5-5圖書信息添加界面圖5-6圖書信息維護界面具體功能實現(xiàn)代碼:publicclassBookDao{ publicintadd(Connectioncon,Bookbook)throwsException{ Stringsql="insertintot_bookvalues(null,?,?,?,?,?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,book.getBookName()); pstmt.setString(2,book.getAuthor()); pstmt.setString(3,book.getSex()); pstmt.setFloat(4,book.getPrice()); pstmt.setInt(5,book.getBookTypeId()); pstmt.setString(6,book.getBookDesc()); returnpstmt.executeUpdate(); } publicResultSetlist(Connectioncon,Bookbook)throwsException{ StringBuffersb=newStringBuffer("select*fromt_bookb,t_bookTypebtwhereb.bookTypeId=bt.id"); if(StringUtil.isNotEmpty(book.getBookName())){ sb.append("andb.bookNamelike'%"+book.getBookName()+"%'"); } if(StringUtil.isNotEmpty(book.getAuthor())){ sb.append("andb.authorlike'%"+book.getAuthor()+"%'"); } if(book.getBookTypeId()!=null&&book.getBookTypeId()!=-1){ sb.append("andb.bookTypeId="+book.getBookTypeId()); } PreparedStatementpstmt=con.prepareStatement(sb.toString()); returnpstmt.executeQuery(); } publicintdelete(Connectioncon,Stringid)throwsException{ Stringsql="deletefromt_bookwhereid=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,id); returnpstmt.executeUpdate(); } publicintupdate(Connectioncon,Bookbook)throwsException{ Stringsql="updatet_booksetbookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=?whereid=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,book.getBookName()); pstmt.setString(2,book.getAuthor()); pstmt.setString(3,book.getSex()); pstmt.setFloat(4,book.getPrice()); pstmt.setString(5,book.getBookDesc()); pstmt.setInt(6,book.getBookTypeId()); pstmt.setInt(7,book.getId()); returnpstmt.executeUpdate(); }}5.4功能界面實現(xiàn)原理系統(tǒng)整體使用swing框架,若要主界面添加菜單,則需要添加菜單空間menu和標簽控件lable,然后在init方法內(nèi)設(shè)置各項屬性即可;若要在原窗體內(nèi)添加對象,則需先在init方法里添加所需控件,然后實例化對象,最后用代碼設(shè)置各項屬性;若要添加一個彈出式窗體,則先需將菜單項做好,加入一個監(jiān)聽事件處理器,被彈出窗體要以新建源文件的形式編寫(新建Java類),并添加一個事件處理方法,然后在構(gòu)造方法里調(diào)用動態(tài)加載的init方法,,再在這個動態(tài)加載方法里添加要顯示的內(nèi)容即可。5.5數(shù)據(jù)庫實現(xiàn)系統(tǒng)與數(shù)據(jù)庫的成功連接和搭建,是該系統(tǒng)能夠順利實現(xiàn)其各個模塊功能的重要環(huán)節(jié),這個環(huán)節(jié)中利用Sqlyog建立連接并新建用戶表、圖書類別管理表、圖書信息管理表后,再通過使用JDBC等各項技術(shù),實現(xiàn)了系統(tǒng)與數(shù)據(jù)庫的連接,具體代碼如下:publicclassDbUtil{ privateStringdbUrl="jdbc:mysql://localhost:3306/db_book"; privateStringdbUserName="root"; privateStringdbPassword="123456"; privateStringjdbcName="com.mysql.jdbc.Driver"; publicConnectiongetCon()throwsException{ Class.forName(jdbcName); Connectioncon=Dr

溫馨提示

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

評論

0/150

提交評論