版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
圖書管理系統(tǒng)──數(shù)據(jù)庫庫分析與表結(jié)構(gòu)設(shè)計摘要:在本圖書管理系統(tǒng)中,涉及到針對某個病毒的專有殺毒程序。當手機病毒剛出現(xiàn)的時候,由于病毒數(shù)目很少,而且并不具有實質(zhì)性的危害,安全廠商往往通過提供專有殺毒程序的形式來解決威脅?;诓《疚募﨟ASH描述的反病毒掃描技術(shù)。是通過給對應(yīng)的病毒計算HASH,然后通過文件掃描找到對應(yīng)的病毒?;贖ASH計算的反病毒引擎算法簡單,而且病毒定義方式也很容易但是但是由于靈活性及效率原因,很快就被淘汰?;谕ㄓ貌《径x語言的反病毒掃描技術(shù)。通用的病毒定義語言可以用最少的代價描述一個或者多個病毒,并極大的優(yōu)化了掃描引擎的性能。關(guān)鍵詞:數(shù)據(jù)庫;安全;圖書管理系統(tǒng);進程管理;流量統(tǒng)計;手機殺毒;Abstract:Withthedevelopmentofscientifictechnology,informationmanagementsystemcompletelychangedalotofbusinessmanagementmode,thebooksmanagementiseachuniversitymustfacework,peoplehavealwaysbeenusedthetraditionalmanualmodeanditsborrowingbooksdatamanagement.Thiswayhasmanyshortcomings,suchaslowefficiency,secrecybadandredtape.Inaddition,withtheincreaseinthenumberofbooksandmaterials,theeffortwillalsoincreasegreatly,thiswillincreasethematerialmanagementworkloadandtheintensityoflabor,thematerialinformationtothesearch,therenewal,maintenanceandlendinghasbroughtmanydifficulties.Therefore,thedevelopmentbooksmanagementsystemmanagementsystemisaproblemtobesolved.Thispaperfirstanalyzesthedevelopmentbackgroundofthesystem;Then,thearticleanalyzesthefeasibilityofthesystemandfunctionandperformancedemands;Fromthesystemofgeneralframework,databasedesign,detaileddesignviewpoint,theoveralldesign,detaileddesign;Andthesystemcodeandtest,andrealizethesystemSettings,thereadermanagement,thebooksmanagement,booksborrowing,changethepassword.ThesystemUSESJavaswingtechnologytoSQLSERVER2000asadatabaseineclipseenvironmentbymakingbooksmanagementsystemmanagementsystem,thissystemistheperfectfunction,stableperformance,responsespeedmeetthedemands,friendlyinterface.Keywords:Book、Reader、ManagementSystem、Database目錄TOC\o"1-3"\h\u19664目錄 3265781緒論 4138091.1背景 4296511.2開發(fā)思路和計劃 5287662系統(tǒng)需求 629022.1范圍 7120562.2定義 7129282.3功能需求 7138713數(shù)據(jù)庫設(shè)計 7132133.1數(shù)據(jù)流程圖 7192813.2數(shù)據(jù)字典分析 861254設(shè)計說明 8276164.1系統(tǒng)概述 891874.2數(shù)據(jù)庫實施 9319255模塊一:進程管理模塊 10231335.1進程管理器--代碼實現(xiàn) 1022971)首先需要一個結(jié)構(gòu)保存進程信息 10262692)然后一個獲取進程列表的類,用于獲取當前正在運行的進程列表: 1142783)首先為用戶進程和系統(tǒng)進程對應(yīng)的ListView設(shè)置適配數(shù)據(jù): 1328284)在onCreate里初始化控件并獲取進程列表,分別設(shè)置給兩個listview: 14115415)全選按鈕的處理事件: 16253566)一鍵清理按鈕的處理事件: 17162247)權(quán)限添加: 18308225.2進程管理器--界面設(shè)計 18187551)創(chuàng)建androidcomponent:TaskManagerActivity,并為其創(chuàng)建布局文件taskmanager_layout 19289475.3部分算法設(shè)計 20163515.4接口 221195.5子功能模塊的測試 22308916模塊二:流量統(tǒng)計模塊 23243906.1原理 2316006.2流量統(tǒng)計--界面設(shè)計 27265311)這里聯(lián)系使用抽屜控件SlidingDrawer,布局文件: 27195736.3流量統(tǒng)計--代碼實現(xiàn) 2780036.3.1類似程序管理器、進程管理器里的軟件信息、進程信息,設(shè)置一個TrafficInfo結(jié)構(gòu)體來表示流量信息: 2737086.3.2獲取流量信息的TrafficInfoProvider: 2819436.3.3部分算法設(shè)計 2938146.3.4接口 3031417模塊七:手機殺毒模塊 31227067.1手機殺毒--界面設(shè)計 31272637.2手機殺毒--代碼實現(xiàn) 32168447.2.1病毒庫直接使用assets目錄下的antivirus.db文件,查詢該數(shù)據(jù)庫的類AntiVirusDao: 32327587.2.2其中Md5Encoder: 33314127.2.3需要事先將antivirus.db文件從assets目錄復(fù)制到程序目錄下,在SplashActivity的創(chuàng)建更新線程后添加: 3498497.2.3部分算法設(shè)計 35235817.2.4接口 36106297.2.5測試 37273338技術(shù)控制: 38340210參考文獻: 421緒論1.1背景當今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理,使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計的,而且我認為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況1.2開發(fā)思路和計劃在和指導(dǎo)老師多次交流后,確定實現(xiàn)方案的要點和工作計劃。該系統(tǒng)主要建立一個基于java的圖書館借閱管理系統(tǒng),面對當起很多小型圖書管理仍是人工管理帶來的檢索速度慢,效率低,借閱歸還圖書量大,圖書統(tǒng)計工作量大,藏書不能完成及時更新的問題,該系統(tǒng)可以對跟系統(tǒng)的三個用戶類型的使用實現(xiàn):1、對于讀者在本系統(tǒng)的應(yīng)用下可實現(xiàn)按照各種方式(如:書名,編號,作者)查詢圖書館的藏書請客,方便的借閱圖書,續(xù)借圖書,歸還圖書,能夠查詢自己的借閱圖書情況。2、對于圖書館工作人員能夠?qū)崿F(xiàn)方便的對圖書進行查詢,方便的進行讀者借閱情況查詢,方便的進行借書還書處理等,便捷的對圖書信息進行添加、修改、刪除,分類管理等操作,對讀者信息進行相關(guān)添加,修改,分類管理等操作。3、對于系統(tǒng)管理員可以對圖書館信息進行修改更新操作,對系統(tǒng)用戶進行添加、修改、刪除、權(quán)限設(shè)置等操作,對圖書館的辦證參數(shù)進行修改維護等操作功能。和研究任何其它軟件項目一樣,我做的畢業(yè)設(shè)計也經(jīng)歷了從選題,調(diào)研,熟悉開發(fā)環(huán)境,實驗關(guān)鍵技術(shù),查找類似的相關(guān)系統(tǒng)的資料;系統(tǒng)概要設(shè)計,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,功能模塊開發(fā),功能模塊測試,系統(tǒng)調(diào)試和系統(tǒng)試運行和修改。如下1.2-1開發(fā)計劃流程圖:選題調(diào)查研究資料查詢開發(fā)環(huán)境熟悉選題調(diào)查研究資料查詢開發(fā)環(huán)境熟悉學(xué)習(xí)android技術(shù)概要設(shè)計數(shù)據(jù)庫的設(shè)計功能模塊開發(fā)和詳細設(shè)計功能模塊測試項目調(diào)試和修改需求分析圖1.2-1開發(fā)計劃流程圖2系統(tǒng)需求2.1范圍本次開發(fā)的系統(tǒng)為圖書管理系統(tǒng)。用于廣大Android手機用戶,包括手機防盜、通訊衛(wèi)士、軟件管理、數(shù)據(jù)庫庫分析與表結(jié)構(gòu)設(shè)計、系統(tǒng)優(yōu)化、高級工具、設(shè)置中心2.2定義LBLiberty(圖書管理系統(tǒng))的縮寫。2.3功能需求經(jīng)過以上詳細的用戶調(diào)查,在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上,基本可以確定系統(tǒng)設(shè)計必須達到的目標。以下是圖書管理系統(tǒng)必須具備的功能:1、基礎(chǔ)數(shù)據(jù)維護基礎(chǔ)數(shù)據(jù)維護包括讀者信息管理、圖書類別管理、圖書信息管理及退出系統(tǒng)。各管理功能的明細如下:(1)讀者信息管理:包括讀者信息添加、讀者信息修改與刪除。其中,讀者信息添加包括讀者的姓名,性別,年齡,職業(yè),最大借書量,電話等等。(2)圖書類別管理:包括圖書類別添加、圖收類別修改2部分能。(3)圖書信息管理:包括圖書信息添加、圖書修改。(4)退出系統(tǒng)2、新書訂購管理新書訂購管理部分包括新書訂購、驗收新書等操作。各管理部分的明細如下:(1)新書訂購:新書訂購包括圖書信息和訂購信息,其中訂購信息包括,訂購日期、訂購數(shù)量、是否驗收、折扣等。(2)驗收新書:主要是對訂購的新書進行一個驗證與接收。3、借閱管理功能借閱管理部分包括借書管理和還書管理,其功能是實現(xiàn)對各部分數(shù)據(jù)內(nèi)容的添加和查詢操作。各管理部分的明細如下:(1)圖書借閱:包括添加借書信息和查詢借書信息兩部分功能。其中,借書信息包括借閱編號、讀者編號、讀者姓名、書籍編號、書籍名稱、出借日期和還書日期。(2)圖書歸還:實現(xiàn)添加還書信息功能。其中,還書信息與借書信息各部分明細相同。(3)圖書搜索:實現(xiàn)對圖書的搜索功能,以了解圖書的各方面的信息。4、系統(tǒng)維護設(shè)置操作人員。系統(tǒng)初始設(shè)置一個管理員用戶名和密碼,操作人員可以利用這個超級用戶登錄,之后,可以設(shè)置其他的操作人員名稱。3數(shù)據(jù)庫設(shè)計3.1數(shù)據(jù)流程圖經(jīng)過詳細的調(diào)查,我們已經(jīng)清楚了解了現(xiàn)行的業(yè)務(wù)流程,接下來給出系統(tǒng)的邏輯模型。構(gòu)造系統(tǒng)邏輯模型的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。根據(jù)現(xiàn)行圖書管理的業(yè)務(wù)流程,首先把數(shù)據(jù)流圖中的源點和終點都選定為學(xué)生,因此可以得到圖書管理系統(tǒng)的基本系統(tǒng)模型,如圖2.1所示。圖2.1圖書管理系統(tǒng)的基本系統(tǒng)模型根據(jù)基本系統(tǒng)模型,對其逐步細化,得到描述邏輯系統(tǒng)細化后的數(shù)據(jù)流圖,如圖2.2所示。圖2.2圖書管理系統(tǒng)數(shù)據(jù)流圖(頂層DFD圖)對頂層DFD圖中的一個加工“讀者管理”進行展開,如圖2.3。圖2.3細化后數(shù)據(jù)流圖對頂層DFD圖中的一個加工“圖書管理”進行展開,如圖2.4。圖2.4“圖書管理”展開4設(shè)計說明4.1系統(tǒng)概述為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,圖書管理系統(tǒng)應(yīng)該滿足以下的性能需求:1、系統(tǒng)處理的準確性和及時性系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足學(xué)校對信息處理的需求。2、系統(tǒng)的開放性和系統(tǒng)的可擴充性圖書管理系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴充性。例如用戶查詢的需求也會不斷的更新和完善。3、系統(tǒng)的易用性和易維護性圖書管理系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機并不時非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。4、系統(tǒng)的標準性系統(tǒng)在設(shè)計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標準。5、系統(tǒng)的先進性目前計算系統(tǒng)的技術(shù)發(fā)展相當快,做為圖書管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進,充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過系統(tǒng)的開放性和可擴充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計和開發(fā)的過程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當前主流并先進且有良好發(fā)展前途的產(chǎn)品。6、系統(tǒng)的響應(yīng)速度圖書管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級,達到實時要求,以及時反饋信息。在進行統(tǒng)計分析時,根據(jù)所需數(shù)據(jù)量的不同而從秒級到分鐘級,原則是保證操作人員不會因為速度問題而影響工作效率。7、系統(tǒng)功能模塊圖依據(jù)需求分析階段得到的數(shù)據(jù)流圖,采用軟件工程中軟件設(shè)計的概念和原理,與用戶成分協(xié)商后,在保證系統(tǒng)基本功能要求的前提下,結(jié)合系統(tǒng)新的業(yè)務(wù)流程確定系統(tǒng)必須具備的所有功能,由此給出圖書管理系統(tǒng)的系統(tǒng)功能模塊圖如圖3-2所示。圖3-2系統(tǒng)功能模塊圖5基礎(chǔ)數(shù)據(jù)維護模塊數(shù)據(jù)庫設(shè)計5.1流程圖分析根據(jù)系統(tǒng)的需求分析和可行性分析,畫出圖書館管理系統(tǒng)的系統(tǒng)流程圖,如圖2-1所示。讀者圖書借閱讀者圖書借閱圖書續(xù)借圖書歸還管理員管理圖書檔案管理讀者檔案信息讀者檔案獲取讀者信息圖書檔案圖書借閱檔案根據(jù)讀者信息獲取借閱信息完成圖書續(xù)借完成圖書借閱歸還相關(guān)圖書圖書歸還檔案5.2讀者表(tb_reader)列名數(shù)據(jù)類型允許Null值備注namevarchar(10)N姓名sexvarchar(2)N性別ageInt(4)N年齡identityCardvarchar(50)N身份證號datedatetimeN歸還日期maxNumInt(11)N最多借書數(shù)目telInt(11)N電話keepMoneymoneyN所借書價值zjInt(11)N已經(jīng)借的書數(shù)目zyvarchar(50)N身份類型ISBNvarchar(13)N證件號bztimedatetimeN借書時間在sqlserver2008中設(shè)計如下:創(chuàng)建語句如下:CREATETABLE[dbo].[tb_reader]( [name][varchar](10)NOTNULL, [sex][varchar](2)NOTNULL, [age][int]NOTNULL, [identityCard][varchar](30)NOTNULL, [date][datetime]NOTNULL, [maxNum][int]NOTNULL, [tel][varchar](50)NOTNULL, [keepMoney][money]NOTNULL, [zj][int]NOTNULL, [zy][varchar](50)NOTNULL, [ISBN][varchar](13)NOTNULL, [bztime][datetime]NOTNULL,CONSTRAINT[PK_tb_reader]PRIMARYKEYCLUSTERED( [ISBN]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]添加如下虛擬數(shù)據(jù):SELECTTOP1000[name],[sex],[age],[identityCard],[date],[maxNum],[tel],[keepMoney],[zj],[zy],[ISBN],[bztime]FROM[db_library].[dbo].[tb_reader]在系統(tǒng)中的model內(nèi)做如下映射:publicclassReader{ privateStringname; privateStringsex; privateStringage; privateStringidentityCard; privateDatedate; privateStringmaxNum; privateStringtel; privateDoublekeepMoney; privateintzj; privateStringzy; privateStringISBN; privateDatebztime; publicStringgetAge(){ returnage; } publicvoidsetAge(Stringage){ this.age=age; } publicDategetBztime(){ returnbztime; } publicvoidsetBztime(Datebztime){ this.bztime=bztime; } publicDategetDate(){ returndate; } publicvoidsetDate(Datedate){ this.date=date; } publicStringgetIdentityCard(){ returnidentityCard; } publicvoidsetIdentityCard(StringidentityCard){ this.identityCard=identityCard; } publicStringgetISBN(){ returnISBN; } publicvoidsetISBN(Stringisbn){ ISBN=isbn; } publicDoublegetKeepMoney(){ returnkeepMoney; } publicvoidsetKeepMoney(DoublekeepMoney){ this.keepMoney=keepMoney; } publicStringgetMaxNum(){ returnmaxNum; } publicvoidsetMaxNum(StringmaxNum){ this.maxNum=maxNum; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicStringgetTel(){ returntel; } publicvoidsetTel(Stringtel){ this.tel=tel; } publicintgetZj(){ returnzj; } publicvoidsetZj(intzj){ this.zj=zj; } publicStringgetZy(){ returnzy; } publicvoidsetZy(Stringzy){ this.zy=zy; }}5.3訂單表(tb_order)列名數(shù)據(jù)類型允許Null值備注namevarchar(10)N姓名sexvarchar(2)N性別ageInt(4)N年齡列名數(shù)據(jù)類型允許Null值備注namevarchar(10)N姓名sexvarchar(2)N性別創(chuàng)建語句:CREATETABLE[dbo].[tb_order]( [ISBN][varchar](13)NOTNULL, [date][datetime]NOTNULL, [number][int]NOTNULL, [operator][varchar](6)NOTNULL, [checkAndAccept][int]NOTNULL, [zk][float]NOTNULL,CONSTRAINT[PK_tb_order]PRIMARYKEYCLUSTERED( [ISBN]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]虛擬數(shù)據(jù):SELECTTOP1000[ISBN],[date],[number],[operator],[checkAndAccept],[zk]FROM[db_library].[dbo].[tb_order]在系統(tǒng)中的model內(nèi)做如下映射:publicclassOrder{ privateStringISBN; privateDatedate; privateStringnumber; privateStringoperator; privateStringcheckAndAccept; privateStringzk; publicStringgetCheckAndAccept(){ returncheckAndAccept; } publicvoidsetCheckAndAccept(StringcheckAndAccept){ this.checkAndAccept=checkAndAccept; } publicDategetDate(){ returndate; } publicvoidsetDate(Datedate){ this.date=date; } publicStringgetISBN(){ returnISBN; } publicvoidsetISBN(Stringisbn){ ISBN=isbn; } publicStringgetNumber(){ returnnumber; } publicvoidsetNumber(Stringnumber){ this.number=number; } publicStringgetOperator(){ returnoperator; } publicvoidsetOperator(Stringoperator){ this.operator=operator; } publicStringgetZk(){ returnzk; } publicvoidsetZk(Stringzk){ this.zk=zk; } }5.4管理員表(tb_operator)列名數(shù)據(jù)類型允許Null值備注idintN主鍵namevarchar(10)N姓名sexvarchar(2)N性別ageInt(4)N年齡identityCardvarchar(50)N身份證號workdatedatetimeN工作時間maxNumInt(11)N最多借書數(shù)目telInt(11)N電話adminbitN登陸賬號passwordvarchar(10)N密碼創(chuàng)建語句為:CREATETABLE[dbo].[tb_operator]( [id][int]IDENTITY(1,1)NOTNULL, [name][varchar](12)NOTNULL, [sex][varchar](2)NOTNULL, [age][int]NOTNULL, [identityCard][varchar](30)NOTNULL, [workdate][datetime]NOTNULL, [tel][varchar](50)NOTNULL, [admin][bit]NOTNULL, [password][varchar](10)NOTNULL,CONSTRAINT[PK_TB_OPERATOR]PRIMARYKEYNONCLUSTERED( [id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]虛擬數(shù)據(jù)如下:SELECTTOP1000[id],[name],[sex],[age],[identityCard],[workdate],[tel],[admin],[password]FROM[db_library].[dbo].[tb_operator]在系統(tǒng)中的model內(nèi)做如下映射:publicclassOperater{ privateStringid; privateStringname; privateStringgrade; privateStringpassword; publicStringgetGrade(){ returngrade; } publicvoidsetGrade(Stringgrade){ this.grade=grade; } publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; }}5.4借書表(tb_borrow)列名數(shù)據(jù)類型允許Null值備注idintN主鍵bookISBNvarchar(12)N圖書編號operatorIdintN管理員idreaderISBNvarchar(13)N借讀人員編號isbackInt(2)N是否歸還borrowDatedatetimeN借出時間backDatedatetimeN歸還時間創(chuàng)建語句為:CREATETABLE[dbo].[tb_borrow]( [id][int]IDENTITY(1,1)NOTNULL, [bookISBN][varchar](13)NULL, [operatorId][int]NULL, [readerISBN][varchar](13)NULL, [isback][int]NOTNULL, [borrowDate][datetime]NOTNULL, [backDate][datetime]NULL,CONSTRAINT[PK_TB_BORROW]PRIMARYKEYNONCLUSTERED( [id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]虛擬數(shù)據(jù)如下:SELECTTOP1000[id],[bookISBN],[operatorId],[readerISBN],[isback],[borrowDate],[backDate]FROM[db_library].[dbo].[tb_borrow]publicclassBorrow{ privateintid; privateStringbookISBN; privateStringreaderISBN; privateStringnum; privateStringborrowDate; privateStringbackDate; privateStringbookName; publicStringgetBookName(){ returnbookName; } publicvoidsetBookName(StringbookName){ this.bookName=bookName; } publicStringgetBackDate(){ returnbackDate; } publicvoidsetBackDate(StringbackDate){ this.backDate=backDate; } publicStringgetBookISBN(){ returnbookISBN; } publicvoidsetBookISBN(StringbookISBN){ this.bookISBN=bookISBN; } publicStringgetBorrowDate(){ returnborrowDate; } publicvoidsetBorrowDate(StringborrowDate){ this.borrowDate=borrowDate; } publicStringgetNum(){ returnnum; } publicvoidsetNum(Stringnum){ this.num=num; } publicStringgetReaderISBN(){ returnreaderISBN; } publicvoidsetReaderISBN(StringreaderISBN){ this.readerISBN=readerISBN; } publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; }}5.5圖書信息表(tb_bookInfo)列名數(shù)據(jù)類型允許Null值備注ISBNvarchar(13)N圖書編號typeIdintN圖書類型表idbooknamevarchar(40)N書名writervarchar(20)N作者translatorvarchar(30)Y翻譯者publishervarchar(30)N出版商datesmalldatetimeN出版日期pricemoneyN價格創(chuàng)建語句為:CREATETABLE[dbo].[tb_bookInfo]( [ISBN][varchar](13)NOTNULL, [typeId][int]NOTNULL, [bookname][varchar](40)NOTNULL, [writer][varchar](21)NOTNULL, [translator][varchar](30)NULL, [publisher][varchar](50)NOTNULL, [date][smalldatetime]NOTNULL, [price][money]NOTNULL,CONSTRAINT[PK_TB_BOOKINFO]PRIMARYKEYNONCLUSTERED( [ISBN]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]虛擬數(shù)據(jù)如下:SELECTTOP1000[ISBN],[typeId],[bookname],[writer],[translator],[publisher],[date],[price]FROM[db_library].[dbo].[tb_bookInfo]在系統(tǒng)中的model內(nèi)做如下映射:publicclassBookInfo{ privateStringISBN; privateStringtypeid; privateStringwriter; privateStringtranslator; privateStringpublisher; privateDatedate; privateDoubleprice; privateStringbookname; publicStringgetBookname(){ returnbookname; } publicvoidsetBookname(Stringbookname){ this.bookname=bookname; } publicDategetDate(){ returndate; } publicvoidsetDate(Datedate){ this.date=date; } publicStringgetISBN(){ returnISBN; } publicvoidsetISBN(Stringisbn){ ISBN=isbn; } publicDoublegetPrice(){ returnprice; } publicvoidsetPrice(Doubleprice){ this.price=price; } publicStringgetPublisher(){ returnpublisher; } publicvoidsetPublisher(Stringpublisher){ this.publisher=publisher; } publicStringgetTranslator(){ returntranslator; } publicvoidsetTranslator(Stringtranslator){ this.translator=translator; } publicStringgetTypeid(){ returntypeid; } publicvoidsetTypeid(Stringtypeid){ this.typeid=typeid; } publicStringgetWriter(){ returnwriter; } publicvoidsetWriter(Stringwriter){ this.writer=writer; }}5.6圖書類型表(tb_bookType)列名數(shù)據(jù)類型允許Null值備注idintN主鍵typeNamevarchar(2)N類型名daysInt(4)N可借天數(shù)fkmoneyN罰款創(chuàng)建語句為:CREATETABLE[dbo].[tb_bookType]( [id][int]IDENTITY(1,1)NOTNULL, [typeName][varchar](20)NOTNULL, [days][int]NULL, [fk][float]NULL,CONSTRAINT[PK_TB_BOOKTYPE]PRIMARYKEYNONCLUSTERED( [id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]虛擬數(shù)據(jù)如下:SELECTTOP1000[id],[typeName],[days],[fk]FROM[db_library].[dbo].[tb_bookType]在系統(tǒng)中的model內(nèi)做如下映射:publicclassBookType{ privateStringid; privateStringtypeName; privateStringdays; privateStringfk; publicStringgetFk(){ returnfk; } publicvoidsetFk(Stringfk){ this.fk=fk; } publicStringgetDays(){ returndays; } publicvoidsetDays(Stringdays){ this.days=days; } publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringgetTypeName(){ returntypeName; } publicvoidsetTypeName(StringtypeName){ this.typeName=typeName; }}6數(shù)據(jù)庫連接測試publicclassDao{ protectedstaticStringdbClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; protectedstaticStringdbUrl="jdbc:microsoft:sqlserver://localhost:1433;" +"DatabaseName=db_library;SelectMethod=Cursor"; protectedstaticStringdbUser="li"; protectedstaticStringdbPwd="123"; protectedstaticStringsecond=null; privatestaticConnectionconn=null; privateDao(){ try{ if(conn==null){ Class.forName(dbClassName).newInstance(); conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); } else return; }catch(Exceptionee){ ee.printStackTrace(); } } privatestaticResultSetexecuteQuery(Stringsql){ try{ if(conn==null) newDao(); returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql); }catch(SQLExceptione){ e.printStackTrace(); returnnull; }finally{ } } privatestaticintexecuteUpdate(Stringsql){ try{ if(conn==null) newDao(); returnconn.createStatement().executeUpdate(sql); }catch(SQLExceptione){ System.out.println(e.getMessage()); //if(e.getMessage().equals("[Microsoft][SQLServer2000DriverforJDBC][SQLServer]DELETE語句與COLUMNREFERENCE約束'FK_TB_BORRO_REFERENCE_TB_BOOKI'沖突。該沖突發(fā)生于數(shù)據(jù)庫'db_library',表'tb_borrow',column'bookISBN'。")) return-1; }finally{ } } publicstaticvoidclose(){ try{ conn.close(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ conn=null; } }6.1管理員登錄方法 publicstaticOperatercheck(Stringname,Stringpassword){ inti=0; Operateroperater=newOperater();// Stringsql="select*fromtb_operatorwherename='"+name// +"'andpassword='"+password+"'andadmin=1"; Stringsql="select*fromtb_operatorwherename='"+name +"'andpassword='"+password+"'"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ Stringnames=rs.getString(1); operater.setId(rs.getString("id")); operater.setName(rs.getString("name")); operater.setGrade(rs.getString("admin")); operater.setPassword(rs.getString("password")); if(names!=null){ i=1; } } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnoperater; }6.2判斷圖書是否驗收// publicstaticBooleancheckAndAccept(StringbookISBNs){// Stringsql="select*fromtb_orderwhereISBN='"+bookISBNs+"'";// ResultSetrs=Dao.executeQuery(sql);// try{// if(rs.next()){// returntrue;// }else{// returnfalse;// }// }catch(Exceptione){// e.printStackTrace();// }// Dao.close();// returnfalse;// // } publicstaticBooleancheckAndAccept(StringbookISBNs){ Stringsql="selectcheckAndAcceptfromtb_orderwhereISBN='"+bookISBNs+"'"; ResultSetrs=Dao.executeQuery(sql); intcheckAndAccept=1; try{ while(rs.next()){ checkAndAccept=rs.getInt("checkAndAccept"); if(checkAndAccept==1){ returnfalse; } else{ returntrue; } } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnfalse; }6.3判斷圖書是否已歸還 publicstaticBooleancheckBorrowReturn(StringbookISBNs){ Stringsql="select*fromtb_borrowwherebookISBN='"+bookISBNs+"'andisback=1"; ResultSetrs=Dao.executeQuery(sql); intcount=0; try{ if(rs.next()){ returntrue; } else{ returnfalse; } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnfalse; } publicstaticintcheckBorrowCount(StringbookISBNs){ Stringsql="selectcount(*)fromtb_borrowwherebookISBN='"+bookISBNs+"'andisback=1"; ResultSetrs=Dao.executeQuery(sql); intcount=0; try{ while(rs.next()){ count=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returncount; }6.4判斷圖書是否驗收 publicstaticintselectOrderNumber(StringbookISBNs){ Stringsql="selectnumberfromtb_orderwhereISBN='"+bookISBNs+"'"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ returnrs.getInt("number"); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); return0; } publicstaticBooleancheckOrderISBN(StringbookISBNs){ Stringsql="select*fromtb_orderwhereISBN='"+bookISBNs+"'"; ResultSetrs=Dao.executeQuery(sql); try{ if(rs.next()){ returntrue; }else{ returnfalse; } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnfalse; } 6.5查詢類別方法 publicstaticListselectBookCategory(){ Listlist=newArrayList(); Stringsql="select*fromtb_bookType"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ BookTypebookType=newBookType(); bookType.setId(rs.getString("id")); bookType.setTypeName(rs.getString("typeName")); bookType.setDays(rs.getString("days")); bookType.setFk(rs.getString("fk")); list.add(bookType); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnlist; }6.6通過id查詢類別方法 publicstaticBookTypeselectBookCategoryById(intid){ Listlist=newArrayList(); Stringsql="select*fromtb_bookTypewhereid="+id; ResultSetrs=Dao.executeQuery(sql); BookTypebookType=null; try{ while(rs.next()){ bookType=newBookType(); bookType.setId(rs.getString("id")); bookType.setTypeName(rs.getString("typeName")); bookType.setDays(rs.getString("days")); bookType.setFk(rs.getString("fk")); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnbookType; } publicstaticListselectBookCategory(StringbookType){ Listlist=newArrayList(); Stringsql="selectdaysfromtb_bookTypewheretypeName='"+bookType+"'"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ BookTypetype=newBookType(); type.setDays(rs.getString("days")); list.add(type); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnlist; }6.7圖書類別表相關(guān)操作 publicstaticintInsertBookType(StringbookTypeName,Stringdays,Doublefk){ inti=0; try{ Stringsql="insertintotb_bookType(typeName,days,fk)values('"+bookTypeName+"','"+days+"',"+fk+")"; i=Dao.executeUpdate(sql); }catch(Exceptione){ e.printStackTrace(); } returni; } publicstaticintUpdatebookType(Stringid,StringtypeName,Stringdays,Stringfk){ inti=0; try{ Stringsql="updatetb_bookTypesettypeName='"+typeName+"',days='"+days+"',fk='"+fk+"'whereid='"+id+"'"; //System.out.println(sql); i=Dao.executeUpdate(sql); }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returni; }// publicstaticintDelbookType(Stringid){// inti=0;// try{// Stringsql="deletefromtb_bookTypewhereid='"+id+"'";// //System.out.println(sql);// i=Dao.executeUpdate(sql);// }catch(Exceptione){// e.printStackTrace();// }// Dao.close();// returni;// } publicstaticListselectBookTypeFk(StringbookType){//取每種書超過規(guī)定時間罰款金額 Listlist=newArrayList(); Stringsql="select*fromtb_bookTypewheretypeName='"+bookType+"'"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ BookTypetype=newBookType(); type.setFk(rs.getString("fk")); type.setDays(rs.getString("days")); list.add(type); } }catch(Exceptione){ e.printStackTrace(); } Dao.close(); returnlist; }6.8圖書信息表相關(guān)操作6.8.1插入圖書信息方法 publicstaticintInsertbook(StringISBN,StringtypeId,Stringbookname,Stringwriter,Stringtranslator,Stringpublisher,Datedate,Doubleprice){ inti=0; try{ Stringsql="insertintotb_bookInfo(ISBN,typeId,bookname,writer,translator,publisher,date,price)values('"+ISBN+"','"+typeId+"','"+bookname+"','"+writer+"','"+translator+"','"+publisher+"','"+date+"',"+price+")"; System.out.println(sql); i=Dao.executeUpdate(sql); }catch(Exceptione){ System.out.println(e.getMessage()); } Dao.close(); returni; } 6.8.2查詢圖書相關(guān)信息 publicstaticListselectBookInfo(){ Listlist=newArrayList(); Stringsql="select*fromtb_bookInfo"; ResultSetrs=Dao.executeQuery(sql); try{ while(rs.next()){ BookInfobookinfo=newBookInfo(); bookinfo.setISBN(rs.getString("ISBN")); bookinfo.setTypeid(rs.getString("typeid")); bookinfo.setBookname(rs.getString("bookname")); bookinfo.setWriter(rs.getString("writer")); bookinfo.setTranslator(rs.getString("translator")); bookinfo.setPublisher(rs.getString("publisher")); bookinfo.setDate(rs.getDate("date")); bookinfo.setPrice(rs.getDouble("price")); list.add(bookinfo); } }catch(Exceptione){ e.printStackTrace();
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 犬皮膚病診治
- 膽囊切除手術(shù)后的飲食與生活注意
- 麥子課件教案教學(xué)課件
- 匆匆的 課件教學(xué)課件
- 采購小組長述職報告
- 高三化學(xué)一輪復(fù)習(xí) 第一章 第1講 考點三 分散系 膠體 課件
- 4.1.1原電池的工作原理上學(xué)期人教版(2019)選擇性必修1
- 腕手關(guān)節(jié)僵硬的康復(fù)治療
- 不玩危險物品教案反思
- 甲狀腺核磁共振成像結(jié)果
- 不抱怨的世界(課堂PPT)
- 企業(yè)盈利能力分析——以青島啤酒股份有限公司為例
- 消火栓滅火器檢查記錄表
- 岸墻、翼墻及導(dǎo)水墻砼澆筑方案
- 第三章_配位化學(xué)
- 中國話-完整版PPT課件
- 纏論基本概念圖解(推薦)
- 海瑞克英文翻譯
- 培訓(xùn)師經(jīng)常用到的七大培訓(xùn)方式及操作方法
- 魯教版美術(shù)九年級下冊教學(xué)設(shè)計
- 模具斜與蝕紋關(guān)系對照表
評論
0/150
提交評論