歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

《圖書(shū)管理系統(tǒng)》中數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)

  • 資源ID:32461778       資源大小:708.01KB        全文頁(yè)數(shù):32頁(yè)
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

《圖書(shū)管理系統(tǒng)》中數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)

本 科 畢 業(yè) 論 文論 文 題 目:圖書(shū)管理系統(tǒng)中數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)指 導(dǎo) 老 師: 學(xué) 生 姓 名: 學(xué) 號(hào): W442509121300001院 系 :網(wǎng)絡(luò)教育學(xué)院專(zhuān) 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 寫(xiě) 作 批 次 :2011年春目 錄摘要 4Abstract 5導(dǎo)言 6第一章 課題的目的及意義7 1.1 可行性分析7第二章 系統(tǒng)框架設(shè)計(jì) 82.1需求分析92.2 各模塊設(shè)計(jì) 10 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì) 123.1數(shù)據(jù)ER圖 143.2數(shù)據(jù)表設(shè)計(jì)143.3數(shù)據(jù)查詢(xún)算法19第四章 系統(tǒng)界面設(shè)計(jì) 214.1數(shù)據(jù)界面與查詢(xún)界面234.2圖書(shū)信息窗 .21第五章 實(shí)現(xiàn)與總結(jié) 245.1系統(tǒng)實(shí)現(xiàn)效果 255.2總結(jié) .25參考文獻(xiàn) .31致謝詞 .32摘要計(jì)算機(jī)體系是基于WEB的分布,JAVA是當(dāng)前滿(mǎn)足這一趨勢(shì)的最佳語(yǔ)言之一,由于其本身的開(kāi)放體系以及簡(jiǎn)潔的語(yǔ)法,國(guó)內(nèi)JAVA技術(shù)應(yīng)用得以蓬勃發(fā)展起來(lái)。本文首先介紹了WEB系統(tǒng)性能優(yōu)化的一些相關(guān)技術(shù)理論,包括軟件開(kāi)發(fā)的設(shè)計(jì)模式、WEB系統(tǒng)性能衡量指標(biāo)以及WEB系統(tǒng)性能測(cè)試方法,然后介紹了J2EE的一些與性能優(yōu)化密切相關(guān)的核心技術(shù),如:Servlet、JSP、JavaBean及其相關(guān)的性能優(yōu)化方法等等。另外,還專(zhuān)門(mén)對(duì)數(shù)據(jù)庫(kù)性能的優(yōu)化進(jìn)行了研究。基于上述現(xiàn)狀,本文主要開(kāi)展以下四方面的工作。一方面,建立基于J2EE和MVC模式的WEB應(yīng)用系統(tǒng)開(kāi)發(fā)的解決方案;另一方面,分析J2EE應(yīng)用系統(tǒng)的性能問(wèn)題,提出影響系統(tǒng)性能的幾個(gè)主要因素;三方面,根據(jù)上面提出的影響系統(tǒng)性能的主要因素分別提出相應(yīng)的解決策略。如表示層、控制器層、業(yè)務(wù)邏輯層以及數(shù)據(jù)庫(kù)等方面的優(yōu)化策略。關(guān)鍵詞 :圖書(shū)管理系統(tǒng),多層次,功能AbstractW the distributed system on web based is the mostly used computer system at the moment and might be in the future.the key technical part and the content of the applicationOf the national enterprise isaccessing data,data format switch ,logic control,data transmit,data expression and so on, Java has all these advantages,and it has been choosen to develoepa B/S sustem as the development language and platform. So how to assemble the J2EE technology reasonable and achieve a system with high performance and high expansibility is my researchful emphasis in the thesis.This discourse firstly introduces some correlative technical theory of performance optimize of WEB system,including the design mode of exploring software,the index of how to scale the performance of WEB system.And then it introduces some core technology of J2EE which is correlative closely with the performance optimize,such as Servlet,JSP,JavaBean and some correlative way of performance optimize.In addition, this article has especially studied data base function optimization.Based on above-mentioned current actuality,The main thesis contains four important aspects.The first one is to establishes WEB application system development solution based on J2EE and the pattern of MVC.The Second aspect is to analyzes the J2EE application system the performance question,and proposes influence system performance several primary factors.The third aspect is to Bringing forword the solution strategy according to the primary factor of influencing the system performance,for example demonstration layer,controller layer,operation logic layer。KEY WORDS: BOOK Management System, java nlevels structure 導(dǎo)言流水之聲可以養(yǎng)耳,青禾綠草可以養(yǎng)目,觀書(shū)譯理可以養(yǎng)心。一部好書(shū)就是塵世的一盞明燈,照亮了人們的心靈,也照亮了人類(lèi)歷史的路徑。書(shū)籍成為人們精神和理想的寄托,而書(shū)的滋養(yǎng)確實(shí)是任何其他事物所無(wú)法替代的。由于人們對(duì)讀書(shū)的需求越來(lái)越大,程式醫(yī)囑樣的圖書(shū)館應(yīng)運(yùn)而生,一直以來(lái)使用傳統(tǒng)人工和方式管理檔案,現(xiàn)在圖書(shū)各類(lèi)多數(shù)目龐大,讀者借閱頻繁,這方式工作繁瑣,查詢(xún)效率低,數(shù)據(jù)易失,難備份,時(shí)間一長(zhǎng),將產(chǎn)生大量文件和數(shù)據(jù),這對(duì)查找、更新和維護(hù)都有好在困難。隨著Internet的飛速發(fā)展,WEB應(yīng)用技術(shù)日趨成熟。特別是SUN公司推出的J2EE技術(shù)被應(yīng)用于越來(lái)越多的企業(yè)系統(tǒng)建設(shè)中。自JAVA面世以來(lái),與JAVA性能相關(guān)的爭(zhēng)論一直沒(méi)有平息,而JAVA也在這些爭(zhēng)論中不斷發(fā)展,慢慢走向成熟。另一方面,企業(yè)的信息化程度加強(qiáng),對(duì)企業(yè)應(yīng)用系統(tǒng)提出的要求也越來(lái)越高。為此,我想作一個(gè)圖書(shū)管理系統(tǒng)管理的優(yōu)化來(lái)對(duì)系統(tǒng)所涉及的問(wèn)題作一個(gè)解決方法。第一章 課題的目的及意義世界經(jīng)濟(jì)發(fā)展已進(jìn)入一個(gè)激烈競(jìng)爭(zhēng)的年代,可以說(shuō),誰(shuí)先獲得信息,誰(shuí)就有可能抓住發(fā)展經(jīng)濟(jì)的機(jī)遇。同樣,誰(shuí)能很好地管理和利用信息,誰(shuí)就有可能占領(lǐng)市場(chǎng),獲得效益。國(guó)內(nèi)外大量事實(shí)已說(shuō)明:在目前這個(gè)激烈競(jìng)爭(zhēng)的市場(chǎng)經(jīng)濟(jì)中,誰(shuí)的信息管理現(xiàn)代化水平高。我選擇了“圖書(shū)館管理系統(tǒng)”這樣一個(gè)教為普遍,同時(shí)又較為典型的課題。在這樣一個(gè)科技高速發(fā)展的社會(huì)里,僅有理論知識(shí)是顯然不行的,所以,我希望通過(guò)開(kāi)發(fā)這個(gè)系統(tǒng),能更好地把理論與實(shí)際結(jié)合起來(lái),充分將自己所學(xué)的專(zhuān)業(yè)知識(shí)應(yīng)用于實(shí)踐之中,并在實(shí)踐中不斷充實(shí)自己,提高自己的專(zhuān)業(yè)技能水平,以獲取更多的教益。選題的目的及研究意義:圖書(shū)管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫(kù)數(shù)據(jù)管理新模式。在對(duì)圖書(shū)、讀者的管理,其實(shí)是對(duì)圖書(shū)、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無(wú)疑會(huì)為管理者對(duì)圖書(shū)管理系統(tǒng)提供極大的幫助。圖書(shū)館的使命在于培養(yǎng)社會(huì)公眾的閱讀習(xí)慣、支持各類(lèi)教育、提供和激發(fā)創(chuàng)造機(jī)會(huì)、加強(qiáng)文化保存與傳播、保證獲取各種知識(shí)、提供知識(shí)服務(wù)和促進(jìn)信息技術(shù)的發(fā)展,以知識(shí)自由為圖書(shū)館職業(yè)的邏輯起點(diǎn)核心價(jià)值最具綜合性與統(tǒng)攝性, 并演繹出其它圖書(shū)館各核心價(jià)值體系, 圖書(shū)館應(yīng)與所有倡導(dǎo)自由表達(dá)和自由獲取思想的個(gè)人和團(tuán)體合作”和“不受年齡、種族、性別、宗教信仰、國(guó)籍、語(yǔ)一言或社會(huì)地位的限制”等方面; 富有成效的參與和民主的發(fā)展有賴(lài)于良好的教育和對(duì)知識(shí)、思想、文化及信息的自由和不受限制的獲取。對(duì)信息和知識(shí)利用與獲取得到滿(mǎn)足,那么社會(huì)公眾對(duì)圖書(shū)館這種特有的信息物利益意識(shí)獲得滿(mǎn)足。在倡導(dǎo)自由、公平社會(huì)里,社會(huì)公眾信自、利益的獲得和滿(mǎn)足必須依靠和通過(guò)利用圖書(shū)館信息資源提供各種制度關(guān)系中得到體現(xiàn), ,知識(shí)的最大利用原則得到更廣泛的認(rèn)同,并發(fā)展為“每本書(shū)有其讀者”的職業(yè)法則。到本世紀(jì)初,由于信息資源的網(wǎng)絡(luò)化和數(shù)字化,圖書(shū)館信息資源共建、共享的思想得到落實(shí),圖書(shū)館信息的社會(huì)效益得到發(fā)展,這使圖書(shū)館的信息價(jià)值得到進(jìn)一步體現(xiàn)。項(xiàng)目背景: 隨著信息膨脹和工作節(jié)奏的日益加快,手工模式已經(jīng)無(wú)法滿(mǎn)足辦公現(xiàn)代化的需要,辦公自動(dòng)化系統(tǒng)作為提高工作效率、規(guī)范辦公制度、降低辦公成本、方便領(lǐng)導(dǎo)決策的重要工具,電子辦公正領(lǐng)導(dǎo)著現(xiàn)代化辦公的潮流。目的:利用先進(jìn)的科學(xué)技術(shù)和信息資源,為提高辦公效率,輔助決策,求得更好的效果,以達(dá)到既定(即經(jīng)濟(jì)或其它方面)的目標(biāo)。選題的目的及研究意義:圖書(shū)管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫(kù)數(shù)據(jù)管理新模式。在對(duì)圖書(shū)、讀者的管理,其實(shí)是對(duì)圖書(shū)、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無(wú)疑會(huì)為管理者對(duì)圖書(shū)管理系統(tǒng)提供極大的幫助。要求:安全、及時(shí)、準(zhǔn)確、可靠地采集和傳輸辦公相關(guān)的所有信息思路:采用計(jì)算機(jī)、通信技術(shù)、應(yīng)用計(jì)算機(jī)設(shè)備、通信設(shè)備實(shí)現(xiàn)自動(dòng)化辦公。1.1 可行性分析可行性分析就是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)開(kāi)發(fā)包括經(jīng)經(jīng)濟(jì)可行性、技術(shù)可行性、操作可行性。可行性分析要求:主要功能是負(fù)責(zé)圖書(shū)外借情況和圖書(shū)管理。只有以圖書(shū)管理員的身份才可以進(jìn)行管理??尚行苑治瞿繕?biāo):方便圖書(shū)館管理人員對(duì)圖書(shū)的借閱、歸還等方便快捷的管理方式,同時(shí)也讓讀者隨時(shí)可以清楚自己的借閱情況。公司的圖書(shū)管理涉及圖書(shū)信息、讀者信息、圖書(shū)借閱等多種數(shù)據(jù)管理。從管理睥角度可將圖書(shū)分為三類(lèi):圖書(shū)信息管理、系統(tǒng)用戶(hù)管理、讀者數(shù)據(jù)管理。圖書(shū)信息管理包括圖書(shū)購(gòu)入、借還、查詢(xún)等操作,系統(tǒng)用戶(hù)管理包括用戶(hù)類(lèi)別和用戶(hù)數(shù)據(jù)管理,讀者數(shù)據(jù)管理 包括,讀者的類(lèi)別和個(gè)人數(shù)據(jù)的錄入、修改和刪除。經(jīng)過(guò)實(shí)際考察與分析,圖書(shū)管理系統(tǒng)主要應(yīng)用有發(fā)下功能:清楚圖書(shū)管理系統(tǒng)需要實(shí)現(xiàn)的功能主要有五大塊:“新書(shū)登記”、“借書(shū)管理”、“還書(shū)管理”、 “用戶(hù)管理”和“書(shū)籍查詢(xún)”模塊。其中日常工作管理和基本資料維護(hù)是整個(gè)系統(tǒng)的核心。本次可行性分析是按照前面給出的步驟進(jìn)行的,即按照復(fù)查項(xiàng)目目標(biāo)和規(guī)模,研究目前正使用的系統(tǒng),導(dǎo)出新系統(tǒng)的高層邏輯模型,重新定義問(wèn)題這一循環(huán)反復(fù)過(guò)程進(jìn)行的。本系統(tǒng)的研制和開(kāi)發(fā)充分考慮用戶(hù)工作流程、計(jì)算機(jī)操作水平等,盡可能提供更人性化、直觀的界面,滿(mǎn)足用戶(hù)要求。系統(tǒng)的操作方式在用戶(hù)組織內(nèi)可行。本系統(tǒng)采用的是JSP、Servlet和MySQL開(kāi)發(fā),Windows XP操作系統(tǒng),用Dreamweaver進(jìn)行前臺(tái)網(wǎng)頁(yè)界面設(shè)計(jì)、采用JDBC方式與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行連接,完成數(shù)據(jù)的添加、修改、刪除、查詢(xún)等功能。Servlet技術(shù)是Sun公司提供的一種實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的解決方案,它是基于Java編程語(yǔ)言的WEB服務(wù)器端編程技術(shù),主要用于在WEB服務(wù)器端獲得客戶(hù)端的訪(fǎng)問(wèn)請(qǐng)求信息和動(dòng)態(tài)生成對(duì)客戶(hù)端的響應(yīng)消息。Servlet技術(shù)也是JSP技術(shù)(另外一種動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù))的基礎(chǔ)。一個(gè)Servlet程序就是一個(gè)實(shí)現(xiàn)了特殊接口的Java類(lèi),用于被支持Servlet的WEB服務(wù)器調(diào)用和運(yùn)行,即只能運(yùn)行于具有Servlet引擎的WEB服務(wù)器端。一個(gè)Servlet程序負(fù)責(zé)處理它所對(duì)應(yīng)的一個(gè)或一組URL地址的訪(fǎng)問(wèn)請(qǐng)求,接收訪(fǎng)問(wèn)請(qǐng)求信息和產(chǎn)生響應(yīng)內(nèi)容。JDBC(Java Data Base Connection,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪(fǎng)問(wèn)Sybase數(shù)據(jù)庫(kù)專(zhuān)門(mén)寫(xiě)一個(gè)程序,為訪(fǎng)問(wèn)Oracle數(shù)據(jù)庫(kù)又專(zhuān)門(mén)寫(xiě)一個(gè)程序,或?yàn)樵L(fǎng)問(wèn)Informix數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用,將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開(kāi)發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠(chǎng)商及第三方中間件廠(chǎng)商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類(lèi)型定義且高性能實(shí)現(xiàn)的接口,而且JDBC 還擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)企業(yè)也可以用 JDBC 通過(guò) Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中即使這些職員所用的計(jì)算機(jī)有 Windows、Macintosh 和UNIX 等各種不同的操作系統(tǒng)。第二章 系統(tǒng)框架設(shè)計(jì)j2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制:J2EE架構(gòu)可以充分利用用戶(hù)原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。這之所以成為可能是因?yàn)镴2EE擁有廣泛的業(yè)界支持和一些重要的企業(yè)計(jì)算領(lǐng)域供應(yīng)商的參與。J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開(kāi)發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開(kāi)發(fā)時(shí)間。(1)伸縮性。支持異構(gòu)環(huán)境: J2EE能夠開(kāi)發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應(yīng)用程序不依賴(lài)任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的程序只需開(kāi)發(fā)一次就可部署到各種平臺(tái)。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶(hù)訂購(gòu)與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個(gè)方案所需的費(fèi)用。(2)可伸縮性: 企業(yè)必須要選擇一種服務(wù)器端平臺(tái),這種平臺(tái)應(yīng)能提供極佳的可伸縮性去滿(mǎn)足那些在他們系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶(hù)。基于J2EE平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿(mǎn)足未來(lái)商業(yè)應(yīng)用的需要。穩(wěn)定的可用性: 一個(gè)服務(wù)器端平臺(tái)必須能全天候運(yùn)轉(zhuǎn)以滿(mǎn)足公司客戶(hù)、合作伙伴的需要。因?yàn)镮NTERNET是全球化的、無(wú)處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。若是意外停機(jī),那會(huì)有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長(zhǎng)期的可用性。(3). J2EE 的四層模型J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。事實(shí)上,sun設(shè)計(jì)J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶(hù)端擔(dān)當(dāng)了過(guò)多的角色而顯得臃腫,在這種模式中,第一次部署的時(shí)候比較容易,但難于升級(jí)或改進(jìn),可伸展性也不理想,而且經(jīng)?;谀撤N專(zhuān)有的協(xié)議通常是某種數(shù)據(jù)庫(kù)協(xié)議。2.1需求分析.現(xiàn)在J2EE 的多層企業(yè)級(jí)應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個(gè)多層化應(yīng)用能夠?yàn)椴煌拿糠N服務(wù)提供一個(gè)獨(dú)立的層,以下是 J2EE 典型的四層結(jié)構(gòu):運(yùn)行在客戶(hù)端機(jī)器上的客戶(hù)層組件運(yùn)行在J2EE服務(wù)器上的Web層組件運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterprise information system)層軟件J2EE應(yīng)用程序組件J2EE應(yīng)用程序是由組件構(gòu)成的.J2EE組件是具有獨(dú)立功能的軟件單元,它們通過(guò)相關(guān)的類(lèi)和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。J2EE說(shuō)明書(shū)中定義了以下的J2EE組件應(yīng)用客戶(hù)端程序和applets是客戶(hù)層組件.Java Servlet和JavaServer Pages(JSP)是web層組件.Enterprise JavaBeans(EJB)是業(yè)務(wù)層組件.客戶(hù)層組件,J2EE應(yīng)用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的.web 層組件J2EE web層組件可以是JSP 頁(yè)面或Servlets.按照J(rèn)2EE規(guī)范,靜態(tài)的HTML頁(yè)面和Applets不算是web層組件。web層可能包含某些 JavaBean 對(duì)象來(lái)處理用戶(hù)輸入,并把輸入發(fā)送給運(yùn)行在業(yè)務(wù)層上的enterprise bean 來(lái)進(jìn)行處理。由運(yùn)行在業(yè)務(wù)層上的enterprise bean 進(jìn)行處理.表明了一個(gè)enterprise bean 是如何從客戶(hù)端程序接收數(shù)據(jù),進(jìn)行處理(如果必要的話(huà)), 并發(fā)送到EIS 層儲(chǔ)存的,這個(gè)過(guò)程也可以逆向進(jìn)行。有三種企業(yè)級(jí)的bean: 會(huì)話(huà)(session) beans, 實(shí)體(entity) beans, 和 消息驅(qū)動(dòng)(message-driven) beans. 會(huì)話(huà)bean 表示與客戶(hù)端程序的臨時(shí)交互. 當(dāng)客戶(hù)端程序執(zhí)行完后,會(huì)話(huà)bean 和相關(guān)數(shù)據(jù)就會(huì)消失. 相反, 實(shí)體bean 表示數(shù)據(jù)庫(kù)的表中一行永久的記錄當(dāng)客戶(hù)端程序中止或服務(wù)器關(guān)閉時(shí), 就會(huì)有潛在的服務(wù)保證實(shí)體bean 的數(shù)據(jù)得以保存消息驅(qū)動(dòng) bean 結(jié)合了會(huì)話(huà)bean 和 JMS的消息監(jiān)聽(tīng)器的特性, 允許一個(gè)業(yè)務(wù)層組件異步接收J(rèn)MS 消息.企業(yè)信息系統(tǒng)層企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計(jì)劃 (ERP), 大型機(jī)事務(wù)處理, 數(shù)據(jù)庫(kù)系統(tǒng),和其它的遺留信息系統(tǒng). J2EE 的結(jié)構(gòu)這種基于組件,具有平臺(tái)無(wú)關(guān)性的J2EE 結(jié)構(gòu)使得J2EE 程序的編寫(xiě)十分簡(jiǎn)單,因?yàn)闃I(yè)務(wù)邏輯被封裝成可復(fù)用的組件,并且J2EE 服務(wù)器以容器的形式為所有的組件類(lèi)型提供后臺(tái)服務(wù).容器和服務(wù)容器設(shè)置定制了J2EE服務(wù)器所提供得內(nèi)在支持,包括安全,事務(wù)管理,JNDI(Java Naming and Directory Interface)尋址,遠(yuǎn)程連接等服務(wù),以下列出最重要的幾種服務(wù):J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean ,這樣只有被授權(quán)的用戶(hù)才能訪(fǎng)問(wèn)系統(tǒng)資源. 每一客戶(hù)屬于一個(gè)特別的角色,而每個(gè)角色只允許激活特定的方法。你應(yīng)在enterprise bean的布置描述中聲明角色和可被激活的方法2.2 各模塊設(shè)計(jì)。(1)新書(shū)登記:主要功能是記錄新到書(shū)籍的原始資料。在數(shù)據(jù)庫(kù)中插入一條新記錄,該記錄包括登記編號(hào)、種類(lèi)、名稱(chēng)、作者、。(2)借書(shū)管理:主要功能是記錄借書(shū)人和書(shū)編號(hào),進(jìn)行借書(shū)過(guò)程。在數(shù)據(jù)庫(kù)中插入一條借書(shū)記錄,該記錄包括借書(shū)人、書(shū)編號(hào)、借出日期、是否借出。(3)還書(shū)管理:主要功能是在借閱登記表中找到相應(yīng)的記錄,將該記錄的相應(yīng)數(shù)據(jù)插入到還書(shū)記錄中,同時(shí)將借書(shū)記錄刪除,并保存在借閱歷史記錄表中。(4)用戶(hù)管理:包括新會(huì)員的資料入庫(kù),以及現(xiàn)有會(huì)員資料的修改和刪除。(5)書(shū)籍查詢(xún):根據(jù)相應(yīng)的圖書(shū)信息對(duì)所有書(shū)籍進(jìn)行所需查詢(xún)。此查詢(xún)包括:書(shū)名、作者。J2EE 事務(wù)管理(Transaction Management)模型讓你指定組成一個(gè)事務(wù)中所有方法間的關(guān)系,這樣一個(gè)事務(wù)中的所有方法被當(dāng)成一個(gè)單一的單元. 當(dāng)客戶(hù)端激活一個(gè)enterprise bean中的方法,容器介入一管理事務(wù)。因有容器管理事務(wù),在enterprise bean中不必對(duì)事務(wù)的邊界進(jìn)行編碼。要求控制分布式事務(wù)的代碼會(huì)非常復(fù)雜。你只需在布置描述文件中聲明enterprise bean的事務(wù)屬性,而不用編寫(xiě)并調(diào)試復(fù)雜的代碼。容器將讀此文件并為你處理此enterprise bean的事務(wù)。JNDI 尋址(JNDI Lookup)服務(wù)向企業(yè)內(nèi)的多重名字和目錄服務(wù)提供了一個(gè)統(tǒng)一的接口,這樣應(yīng)用程序組件可以訪(fǎng)問(wèn)名字和目錄服務(wù).J2EE遠(yuǎn)程連接(Remote Client Connectivity)模型管理客戶(hù)端和enterprise bean間的低層交互. 當(dāng)一個(gè)enterprise bean創(chuàng)建后, 一個(gè)客戶(hù)端可以調(diào)用它的方法就象它和客戶(hù)端位于同一虛擬機(jī)上一樣.生存周期管理(Life Cycle Management)模型管理enterprise bean的創(chuàng)建和移除,一個(gè)enterprise bean在其生存周期中將會(huì)歷經(jīng)幾種狀態(tài)。容器創(chuàng)建enterprise bean,并在可用實(shí)例池與活動(dòng)狀態(tài)中移動(dòng)他,而最終將其從容器中移除。即使可以調(diào)用enterprisebean的create及remove方法,容器也將會(huì)在后臺(tái)執(zhí)行這些任務(wù)。truts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)Struts:是一個(gè)表示層框架,主要作用是界面展示,接收請(qǐng)求,分發(fā)請(qǐng)求。在MVC框架中,Struts屬于VC層次,負(fù)責(zé)界面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)Hibernate:是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫(kù)的操作。Spring:是一個(gè)業(yè)務(wù)層框架,是一個(gè)整合的框架,能夠很好地黏合表示層與持久層。我們知道,傳統(tǒng)的Java Web應(yīng)用程序是采用JSP+Servlet+Javabean來(lái)實(shí)現(xiàn)的,這種模式實(shí)現(xiàn)了最基本的MVC分層,使的程序結(jié)構(gòu)分為幾層,有負(fù)責(zé)前臺(tái)展示的 JSP、負(fù)責(zé)流程邏輯控制的Servlet以及負(fù)責(zé)數(shù)據(jù)封裝的Javabean。但是這種結(jié)構(gòu)仍然存在問(wèn)題:如JSP頁(yè)面中需要使用符號(hào)嵌入很多的 Java代碼,造成頁(yè)面結(jié)構(gòu)混亂,Servlet和Javabean負(fù)責(zé)了大量的跳轉(zhuǎn)和運(yùn)算工作,耦合緊密,程序復(fù)用度低等等。Struts 為了解決這些問(wèn)題,出現(xiàn)了Struts框架,它是一個(gè)完美的MVC實(shí)現(xiàn),它有一個(gè)中央控制類(lèi)(一個(gè) Servlet),針對(duì)不同的業(yè)務(wù),我們需要一個(gè)Action類(lèi)負(fù)責(zé)頁(yè)面跳轉(zhuǎn)和后臺(tái)邏輯運(yùn)算,一個(gè)或幾個(gè)JSP頁(yè)面負(fù)責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個(gè) Form類(lèi)負(fù)責(zé)傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標(biāo)簽,就像使用HTML標(biāo)簽一樣簡(jiǎn)單,但是可以完成非常復(fù)雜的邏輯。從此JSP頁(yè)面中不需要出現(xiàn)一行包圍的Java代碼了。 可是所有的運(yùn)算邏輯都放在Struts的Action里將使得 Action類(lèi)復(fù)用度低和邏輯混亂,所以通常人們會(huì)把整個(gè)Web應(yīng)用程序分為三層,Struts負(fù)責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運(yùn)算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫(kù)的讀寫(xiě)。 使用JDBC連接來(lái)讀寫(xiě)數(shù)據(jù)庫(kù),我們最常見(jiàn)的就是打開(kāi)數(shù)據(jù)庫(kù)連接、使用復(fù)雜的SQL語(yǔ)句進(jìn)行讀寫(xiě)、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個(gè)非常煩瑣的過(guò)程。 Hibernate 這時(shí)出現(xiàn)了 Hibernate框架,它需要你創(chuàng)建一系列的持久化類(lèi),每個(gè)類(lèi)的屬性都可以簡(jiǎn)單的看做和一張數(shù)據(jù)庫(kù)表的屬性一一對(duì)應(yīng),當(dāng)然也可以實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的各種表件關(guān)聯(lián)的對(duì)應(yīng)。當(dāng)我們需要相關(guān)操作是,不用再關(guān)注數(shù)據(jù)庫(kù)表。我們不用再去一行行的查詢(xún)數(shù)據(jù)庫(kù),只需要持久化類(lèi)就可以完成增刪改查的功能。使我們的軟件開(kāi)發(fā)真正面向?qū)ο?,而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。 現(xiàn)在我們有三個(gè)層了,可是每層之間的調(diào)用是怎樣的呢?比如顯示層的Struts需要調(diào)用一個(gè)業(yè)務(wù)類(lèi),就需要new一個(gè)業(yè)務(wù)類(lèi)出來(lái),然后使用;業(yè)務(wù)層需要調(diào)用持久層的類(lèi),也需要new一個(gè)持久層類(lèi)出來(lái)用。通過(guò)這種new的方式互相調(diào)用就是軟件開(kāi)發(fā)中最糟糕設(shè)計(jì)的體現(xiàn)。簡(jiǎn)單的說(shuō),就是調(diào)用者依賴(lài)被調(diào)用者,它們之間形成了強(qiáng)耦合,如果我想在其他地方復(fù)用某個(gè)類(lèi),則這個(gè)類(lèi)依賴(lài)的其他類(lèi)也需要包含。程序就變得很混亂,每個(gè)類(lèi)互相依賴(lài)互相調(diào)用,復(fù)用度極低。如果一個(gè)類(lèi)做了修改,則依賴(lài)它的很多類(lèi)都會(huì)受到牽連。 為此,出現(xiàn)Spring框架。 Spring Spring的作用就是完全解耦類(lèi)之間的依賴(lài)關(guān)系,一個(gè)類(lèi)如果要依賴(lài)什么,那就是一個(gè)接口。至于如何實(shí)現(xiàn)這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現(xiàn)了這個(gè)接口的類(lèi),就可以輕松的通過(guò)xml配置文件把實(shí)現(xiàn)類(lèi)注射到調(diào)用接口的那個(gè)類(lèi)里。所有類(lèi)之間的這種依賴(lài)關(guān)系就完全通過(guò)配置文件的方式替代了。所以 Spring框架最核心的就是所謂的依賴(lài)注射和控制反轉(zhuǎn)。 現(xiàn)在的結(jié)構(gòu)是,Struts負(fù)責(zé)顯示層,Hibernate負(fù)責(zé)持久層,Spring負(fù)責(zé)中間的業(yè)務(wù)層,這個(gè)結(jié)構(gòu)是目前國(guó)內(nèi)最流行的Java Web應(yīng)用程序架構(gòu)了。另外,由于Spring使用的依賴(lài)注射以及AOP(面向方面編程),所以它的這種內(nèi)部模式非常優(yōu)秀,以至于Spring自己也實(shí)現(xiàn)了一個(gè)使用依賴(lài)注射的MVC框架,叫做Spring MVC,同時(shí)為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務(wù)層,使用更加方便和強(qiáng)大。 Struts框架是2000年就開(kāi)始起步了,到目前已經(jīng)發(fā)展了5年,技術(shù)相當(dāng)成熟,目前全球Java開(kāi)發(fā)中Struts框架是顯示層技術(shù)中當(dāng)之無(wú)愧的王者。它擁有大量的用戶(hù)群和很好的開(kāi)發(fā)團(tuán)隊(duì)。這也是國(guó)內(nèi)大部分Java軟件公司對(duì)新進(jìn)員工的基本要求。 其他 Java這個(gè)名詞似乎注定和開(kāi)源緊密聯(lián)系在一起了,在Java界,每天都有大量的開(kāi)源技術(shù)出現(xiàn),由于是開(kāi)放源代碼的,技術(shù)中存在的問(wèn)題和不足很快就會(huì)被人發(fā)現(xiàn),開(kāi)源軟件提供者會(huì)很快的修正或擴(kuò)展這些技術(shù),因此版本更新很快,幾個(gè)星期或者幾天就有一個(gè)新版本出來(lái)。 當(dāng)我們?cè)诩夹g(shù)線(xiàn)路中選擇了Java,也就選擇了你必須持續(xù)學(xué)習(xí),經(jīng)常關(guān)注最新的技術(shù),了解它們,看是否適合你的需要,然后學(xué)習(xí)使用它們。第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)主要著重于數(shù)據(jù)對(duì)象的屬性和數(shù)據(jù)對(duì)象之間的關(guān)系的分析。一般采用E-R圖,即實(shí)體-關(guān)系模型來(lái)分析數(shù)據(jù)對(duì)象的屬性和數(shù)據(jù)對(duì)象之間的關(guān)系。編寫(xiě)好檔案系統(tǒng)的業(yè)務(wù)邏輯類(lèi),將有關(guān)系統(tǒng)域模型全部建全,因?yàn)槭褂肧TRUTS的MVC框架,所以接下來(lái)將編寫(xiě)STRUTS的控制器類(lèi),根據(jù)檔案管理實(shí)現(xiàn)功能;用戶(hù)管理控制類(lèi)、登錄控制器類(lèi)和檔案借閱記錄控制器類(lèi)、控制器類(lèi)都繼承了Atruts提供 AcrionSupport控制存在位置接口PositionService, 主要用來(lái)定義存放位置,包括新增、修改、刪除和查詢(xún)存在位置。MVC全稱(chēng)為MODEL-View-Controllet,把一個(gè)應(yīng)用的輸入層、業(yè)務(wù)處理層、控制流程按照Vie(視圖)、 Model (模型) 、Controllet(控制器)的方式進(jìn)行分離,這樣一個(gè)應(yīng)用程序就被劃分成相對(duì)獨(dú)立而又協(xié)同工作的三個(gè)層,視圖層、模型層、控制層。在MVC設(shè)計(jì)模式中,客戶(hù)端WEB瀏覽器會(huì)提交各種不同的用戶(hù)請(qǐng)求,這些請(qǐng)求由控制器處理,控制器根據(jù)事件的類(lèi)型來(lái)改變模型視圖效果,呈現(xiàn)在用戶(hù)面前,而模型 也通過(guò)視圖所獲得的用戶(hù)提交的數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯的處理.MVC模式主要由模型、控制器、視圖三部分組成 ,其中控制器的主要責(zé)任是接收客戶(hù)端所提交的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)哪P蛯?duì)象進(jìn)行處理,再將處理的結(jié)果發(fā)給視圖進(jìn)行顯示。MVC通常會(huì)使用Servlet 來(lái)?yè)?dān)任控制器的角色,因?yàn)樵赟ervlet中可以直接使用H ttpServletRequst, H ttpServleponse 等類(lèi)來(lái)表示請(qǐng)求和請(qǐng)求響應(yīng)對(duì)象。模型的主要作用是根據(jù)客戶(hù)的請(qǐng)求來(lái)進(jìn)行相應(yīng)的業(yè)務(wù)運(yùn)算,這部分的功能在MVC中主要使用JavaBean 來(lái)完成,這部分的代碼不能依賴(lài)于Servlet 的API,從而可以保證業(yè)務(wù)邏輯的可移植性,控制器將模型運(yùn)算的結(jié)果送到視圖,視圖負(fù)責(zé)將這部分?jǐn)?shù)據(jù)顯示在客戶(hù)端,這功能在MVC中主要是使用JSP來(lái)完成,因?yàn)镴SP 允許在HTML當(dāng)中插入JAVA代碼,從而完成復(fù)雜的操作,數(shù)據(jù)庫(kù)主要著重于數(shù)據(jù)對(duì)象的屬性和數(shù)據(jù)對(duì)象之間的關(guān)系的分析。一般采用E-R圖,即實(shí)體-關(guān)系模型來(lái)分析數(shù)據(jù)對(duì)象的屬性和數(shù)據(jù)對(duì)象之間的關(guān)系。編寫(xiě)好檔案系統(tǒng)的業(yè)務(wù)邏輯類(lèi),將有關(guān)系統(tǒng)域模型全部建全,因?yàn)槭褂肧TRUTS的MVC框架,所以接下來(lái)將編寫(xiě)STRUTS的控制器類(lèi),根據(jù)檔案管理實(shí)現(xiàn)功能;用戶(hù)管理控制類(lèi)、登錄控制器類(lèi)和檔案借閱記錄控制器類(lèi)、控制器類(lèi)都繼承了Atruts提供 AcrionSupport控制存在位置接口PositionService, 主要用來(lái)定義存放位置,包括新增、修改、刪除和查詢(xún)存在位置。MVC全稱(chēng)為MODEL-View-Controllet,把一個(gè)應(yīng)用的輸入層、業(yè)務(wù)處理層、控制流程按照Vie(視圖)、 Model (模型) 、Controllet(控制器)的方式進(jìn)行分離,這樣一個(gè)應(yīng)用程序就被劃分成相對(duì)獨(dú)立而又協(xié)同工作的三個(gè)層,視圖層、模型層、控制層。在MVC設(shè)計(jì)模式中,客戶(hù)端WEB瀏覽器會(huì)提交各種不同的用戶(hù)請(qǐng)求,這些請(qǐng)求由控制器處理,控制器根據(jù)事件的類(lèi)型來(lái)改變模型視圖效果,呈現(xiàn)在用戶(hù)面前,而模型 也通過(guò)視圖所獲得的用戶(hù)提交的數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯的處理.MVC模式主要由模型、控制器、視圖三部分組成 ,其中控制器的主要責(zé)任是接收客戶(hù)端所提交的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)哪P蛯?duì)象進(jìn)行處理,再將處理的結(jié)果發(fā)給視圖進(jìn)行顯示。MVC通常會(huì)使用Servlet 來(lái)?yè)?dān)任控制器的角色,因?yàn)樵赟ervlet中可以直接使用H ttpServletRequst, H ttpServleponse 等類(lèi)來(lái)表示請(qǐng)求和請(qǐng)求響應(yīng)對(duì)象。模型的主要作用是根據(jù)客戶(hù)的請(qǐng)求來(lái)進(jìn)行相應(yīng)的業(yè)務(wù)運(yùn)算,這部分的功能在MVC中主要使用JavaBean 來(lái)完成,這部分的代碼不能依賴(lài)于Servlet 的API,從而可以保證業(yè)務(wù)邏輯的可移植性,控制器將模型運(yùn)算的結(jié)果送到視圖,視圖負(fù)責(zé)將這部分?jǐn)?shù)據(jù)顯示在客戶(hù)端,這功能在MVC中主要是使用JSP來(lái)完成,因?yàn)镴SP 允許在HTML當(dāng)中插入JAVA代碼,從而完成復(fù)雜的操作。3.1數(shù)據(jù)ER圖 要求:該系統(tǒng)應(yīng)該具有對(duì)圖書(shū)信息、讀者信息進(jìn)行存儲(chǔ)和管理,并能夠保存圖書(shū)信息、讀者信息、借閱信息、帳號(hào)信息,并具有用戶(hù)管理的功能。該系統(tǒng)能極大地減少圖書(shū)管理員的日常工作,并提供圖書(shū)借閱報(bào)表,給圖書(shū)管理員的圖書(shū)管理提供輔助決策的功能。功能:圖書(shū)管理系統(tǒng)最主要功能是圖書(shū)信息管理、讀者信息管理、圖書(shū)借閱管理、用戶(hù)管理等功能。性能、書(shū)管理系統(tǒng)的使用者是圖書(shū)管理員和讀者。對(duì)于圖書(shū)管理員的管理工作,性能要求不是很?chē)?yán)格,但需要方便圖書(shū)入庫(kù)等操作。系統(tǒng)的輸出(1)圖書(shū)庫(kù)存情況(2)讀者圖書(shū)預(yù)定需求。(3)圖書(shū)借閱情況。系統(tǒng)的輸入(1)新書(shū)入庫(kù)。(2)讀者圖書(shū)借閱。(3)用戶(hù)數(shù)據(jù)添加。 處理流程和數(shù)據(jù)流3.1數(shù)據(jù)ER圖圖 書(shū) 表讀 者 表借閱登記表管理員注銷(xiāo)用戶(hù)登錄 類(lèi)型。編號(hào)讀者管理 管理員編號(hào)密碼名稱(chēng)修改刪除添加借還還書(shū)時(shí)間修改管理理圖書(shū)借書(shū)時(shí)間。類(lèi)型編號(hào)刪除添加圖3.11 圖書(shū)管理系統(tǒng)E-R (2)實(shí)體的各種屬性:用橢圓表示,橢圓內(nèi)為屬性名稱(chēng)。使用線(xiàn)段將其和響應(yīng)的實(shí)體連接起來(lái)。(3)實(shí)體之間的聯(lián)系:用菱形表示,菱形內(nèi)為聯(lián)系的名稱(chēng)。實(shí)體玫實(shí)體之間聯(lián)系表示,菱形內(nèi)為聯(lián)系的名稱(chēng)。實(shí)體和實(shí)體之間的聯(lián)系較多,比較常見(jiàn)的聯(lián)系有1:1,1:N.和N:M這三種。3.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)概念是獨(dú)立于實(shí)際數(shù)據(jù)模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用的設(shè)計(jì)。第一種轉(zhuǎn)化是將實(shí)體轉(zhuǎn)化 為關(guān)系表,這種轉(zhuǎn)化簡(jiǎn)單,需要將實(shí)體的屬性定義為表的屬性即可。第二種轉(zhuǎn)化是聯(lián)系的轉(zhuǎn)化。即將各個(gè)實(shí)體之間的聯(lián)系轉(zhuǎn)化為表格之間的關(guān)系,如外部鍵的定義。圖書(shū)管理系統(tǒng)中要有圖書(shū),圖書(shū)是圖書(shū)管理系統(tǒng)中密不可分的部分,因此要?jiǎng)?chuàng)建一圖書(shū)信息實(shí)體,用來(lái)保存圖書(shū)的詳細(xì)信息。圖書(shū)信息實(shí)體屬性圖如下:圖書(shū)信息實(shí)體名稱(chēng)類(lèi)型條形碼操作員入庫(kù)時(shí)間庫(kù)存數(shù)量書(shū)架頁(yè)碼價(jià)格作者讀者出版社圖3-2圖書(shū)信息實(shí)體讀者是圖書(shū)管理系統(tǒng)重要組成部分,這里創(chuàng)建了一個(gè)讀者信息實(shí)體,用來(lái)存儲(chǔ)讀者的詳細(xì)信息。讀者信息實(shí)體E_R圖讀者信息實(shí)體讀者名稱(chēng)讀者編號(hào)性別備注操作員注冊(cè)日期電話(huà)證件號(hào)碼讀者類(lèi)型讀者信息實(shí)體屬性圖圖書(shū)管理系統(tǒng)為了增加系統(tǒng)的安全性,管理員只有在系統(tǒng)登陸模塊驗(yàn)證通過(guò)后才能進(jìn)入管理員的操作界面,因此在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)存放登陸用戶(hù)信息的管理編號(hào)名稱(chēng)密碼管理員實(shí)體表2-2讀者信息列 名數(shù)據(jù)類(lèi)型長(zhǎng) 度主 鍵證號(hào)int4Yes姓名varchar20聯(lián)系方式varchar50已借書(shū)數(shù)目int4讀者類(lèi)別int4表2-3借閱信息列 名數(shù)據(jù)類(lèi)型長(zhǎng) 度主 鍵證號(hào)int4Yes借閱日期datetime8應(yīng)歸還日期datetime8實(shí)際歸還日期datetime8續(xù)借bit1表2-4書(shū)籍信息列 名數(shù)據(jù)類(lèi)型長(zhǎng) 度主 鍵書(shū)號(hào)char10Yes書(shū)類(lèi)別nchar50作者nchar50定價(jià)money8總冊(cè)數(shù)int4庫(kù)存量int4出版社varchar50書(shū)名varchar50表2-5管理者信息列 名數(shù)據(jù)類(lèi)型長(zhǎng) 度主 鍵用戶(hù)名稱(chēng)char20Yes密碼char20權(quán)限int4錄模塊設(shè)計(jì)為用戶(hù)常用功能,包括用戶(hù)登陸、驗(yàn)證碼、用戶(hù)注冊(cè)、找回密碼。1用戶(hù)登陸用戶(hù)通過(guò)用戶(hù)名,密碼,驗(yàn)證碼登陸。2用戶(hù)注冊(cè)可以通過(guò)點(diǎn)擊鏈接到注冊(cè)頁(yè)面,完成新用戶(hù)注冊(cè)。3驗(yàn)證碼用戶(hù)登陸時(shí)要求用戶(hù)輸入一組隨機(jī)的文字,假如看不清可以點(diǎn)擊“看不清楚,換一張”,若輸入錯(cuò)誤則不能登陸。4密碼找回當(dāng)個(gè)人忘記密碼時(shí),由其通過(guò)回復(fù)注冊(cè)時(shí)填寫(xiě)的問(wèn)題,如果正確可以找回密碼。5.2.2 登錄模塊實(shí)現(xiàn) 用戶(hù)登錄:打開(kāi)網(wǎng)頁(yè)進(jìn)入首頁(yè)點(diǎn)擊“用戶(hù)注冊(cè)”進(jìn)入到用戶(hù)注冊(cè)頁(yè)面,如圖5.2,填寫(xiě)應(yīng)經(jīng)注冊(cè)過(guò)的賬號(hào)和密碼,如果賬號(hào)或密碼錯(cuò)誤,則系統(tǒng)提示登錄失敗,重新登錄,成功則跳轉(zhuǎn)到首頁(yè)。忘記密碼的用戶(hù)可以點(diǎn)擊“取回密碼”按鈕,按照系統(tǒng)的提示一步一步的操縱,填寫(xiě)密碼提示問(wèn)題的答案,從而找回密碼。在主窗體上單擊“顯示報(bào)表”,那么就可以查看反映讀者信息和借閱信息的報(bào)表,借閱信息的報(bào)表如圖所示。讀者信息表<html><head></head><body><center><h2><讀者信息表></h2><form action="" method="post" target="_parent"> 號(hào)碼:<input name=t1 type=text ><p> 姓名:<input name=b1 type=password ><p> 性別:<input type=radio name=a1 value=c1 checked >男 <input type=radio name=a1 value=c2 >女 <p>你喜歡下列哪方面的書(shū)籍: <input type=checkbox name=d1 value=on checked > 哲學(xué) <input type=checkbox name=d2 value=on >自然科學(xué) <input type=checkbox name=d3 value=on >文學(xué) <input type=checkbox name=d4 value=on >經(jīng)濟(jì)學(xué) <input type=checkbox name=d5 value=on >計(jì)算機(jī) <input type=checkbox name=d6 value=on >人文地理 <input type=checkbox name=d7 value=on >政治學(xué) <input type=checkbox name=d8 value=on >醫(yī)藥學(xué)<p>你的照片 <input type="file" name="file" size="20" maxlength="20" ><input type=submit name=d9 value=確定 > <input type=redet name=d9 value=取消 ><p>你最近想讀的書(shū): <textarea name="e1" cols="50" rows="5"> 請(qǐng)將書(shū)名輸入此處 </textarea> <input type=submit name=d10 value=提交 > <input type=redet name=d10 value=取消 > </form></center> </body> </html>借閱信息表在login對(duì)話(huà)框輸入 信息然后查詢(xún)1.選擇File 菜單 ,New APPlication 選項(xiàng),在 APPlication File Nan輸入 c:MYBOOKAPPMYBOOKAPP.ear, 在application Disply Name輸入MYBOOKAPP, 點(diǎn) OK .2. 選擇FILE菜單,MEW ENTETPRISE BEAN選項(xiàng),第一個(gè)界面為直接NEXT。第二個(gè)界面,選中Create New Jar File Ln APPlication,在下面的下拉列表框中選擇,MYbookapp, 在JAR Display Name 中指定名字BOOKJAR, 在Contens 框 中添加 CLASS 文件,按 EDIT 添加,在ROOTDIRECTORY 中指定C:MYBOOKAPPBEN為根目錄,按回車(chē),選出BOOK,CLASSBOOKHOMECLASSBOOKBEAN.CLASS通過(guò)ADD添加到下邊的框中,這是三個(gè)基本構(gòu)建EJB文件,按OK確定,按NEXT進(jìn)入下一步,第三界面中:在BEAN TYPE中選中Entity,在Enterprise Bean CLASS中選中 borrowbean, 在 Enterprise Bean Name中指定 bookEJB, 在Remote Home lnterface 中指定BookWJB, 在 Remote Home Lntetface中選中BookHome, 在 Remote Lnterface中選中book ,按,NEXT進(jìn)入下一步,第四、五、六、七個(gè)界面中可以直接按NEXT,體各項(xiàng)情況,不用做配置。在第八個(gè)界面中,Resource Facrories Referenced in Code r 頁(yè)面中,點(diǎn) ADD 然后在 CodeName 中填入 JDBC/Book,在 JNDI NAME中填入 jdbc/book,最后點(diǎn) FINISH完成。4.選擇FILE菜單,民NEW Enterprise beant選項(xiàng),第一個(gè)界面為說(shuō)明,直接NEXT,第二個(gè)選中Create new jarFlie ln application,在列表框選MYbookAPP 在JAR Diwplay NAME 中指定名字BORROWJAR 在 CONTENTS 添加CLASS文件,按 EDLT 添加,Dorectory 中指定 c:MYBOOKAPPBEAN為目錄,按回車(chē),選Borrw.classBorrowHome.class.borrowbean.class 通過(guò)ADD添加到下邊框,這三個(gè)最基本構(gòu)建EJB的文件,按OK, 按next進(jìn)入下一步,第三個(gè)界面中:在Bean type 中選中Entity,在 EnterpriseBEANclass中選中borrowbean,在 Enterprise Bean Name指定borrowEJB,在R emote lnterface 中選中BORROWM 按NEXT進(jìn)入下一步按,NEXT進(jìn)入下一步,第四、五、六、七個(gè)界面中可以直接按NEXT,體各項(xiàng)情況,不用做配置。在第八個(gè)界面也就是,Resource Facrories Referenced in Code r 頁(yè)面中,點(diǎn) ADD 然后在 CodeName 中填入 JDBC/Book,在 JNDI NAME中填入 jdbc/book,最后點(diǎn) FINISH完成。指定Home Lnterface 為 borrowHome ,指定loca/Remote lnterface 為borrow在下面的JNDIName 中選擇myborrow.再次ADD,然后指定 lnterfaces 為remote 指定home lnterface 為usethom e指定 type為ebtity指定 lnterfaff 為re,pte指定home ;mterave 在下面的jndi NAME中選擇 myuset 接下來(lái)將JAVA客戶(hù)端程序添加 mybookAPP到應(yīng)用中.NAME 中指定名字 booksessoinJAR, 在 CONTENTS 框中添加CLASS文件 按 EDIT添加 ,在ROOT DIRECTORY中指定C:/MYBookApp/BEAN為根目錄 BORROWPANEL$BTAL.CLASS, borrowpaneo.class,branch.class,businesslogic.class,datamodel.class,logindig$btai.class,mycient.classl,logiondog.class,myc;oemt.class,borrowpanel,class,branch,class,businesslogic,class,datamodel.class.logindig$btai,class,login.xlass.myclientFrame$treeSL,class,myclientframe,class,mycilentFRAME$TREEsl.class.mycllienttree.class,QueryPanel$btal.class,Querypanei.class,RETURNpaNEI$BTal.CLASS,reTURNpanel$btReturnal.class,ReturmPanel.class, 通過(guò)ADD添加到下邊的框中按OK,按NEXT進(jìn)入下一步,第三個(gè)界面中:在MAINCLASS中選中myclient,指定DISPLAY 為 Display Name為MYCLIENT,按NEXT進(jìn)入一下步,第四個(gè)界面中可以直接按NEXT,第五個(gè)界面中,EJBSREFERENCDE IN CODE的頁(yè)面中,點(diǎn)ADD,然后指定CODED NAME 為 ejb/simplebooksession,指定TYPE為SESSION,指定LNTERFACES為Remote,指定 home lnterface 為 booksessionhome,1)在選擇菜單“項(xiàng)目”中的“添加新項(xiàng)”對(duì)話(huà)框中選擇Crystal Report選項(xiàng)。不要把它寫(xiě)成軟件開(kāi)發(fā)過(guò)程。(2)在“名稱(chēng)”文本框中輸入報(bào)表名“讀者信息報(bào)表.rpt”,單擊“打開(kāi)”按鈕,就會(huì)彈出入圖所示的“Crystal Report庫(kù)”對(duì)話(huà)框。(3)在其對(duì)話(huà)框中選擇“使用報(bào)表專(zhuān)家”單選按鈕,在“選擇專(zhuān)家”列表框中選擇“標(biāo)準(zhǔn)”選項(xiàng),單擊“確定”按鈕,進(jìn)入下一步。(4)在彈出的“標(biāo)準(zhǔn)報(bào)表專(zhuān)家”對(duì)話(huà)框中,選擇“可用的數(shù)據(jù)源”列表框中的OLB DB(ADO)選項(xiàng),就會(huì)彈“OLE DB(ADO)”對(duì)話(huà)框。選擇OLB DB提供程序?yàn)镸icrosoft OLE DB Provider for SQL Server,單擊“下一步”按鈕,顯示 “連接信息”對(duì)話(huà)框。(5)在其中設(shè)置連接信息,單擊“完成”按鈕,返回“標(biāo)準(zhǔn)報(bào)表專(zhuān)家”對(duì)話(huà)框。(6)選擇數(shù)據(jù)源為OLE DB(ADO)中的Library數(shù)據(jù)庫(kù),并且選中其中的“讀者信息”表。單擊“插入表”按鈕,把“讀者信息”表插入到報(bào)表中,單擊“下一步”按鈕。(7)在“字段”選項(xiàng)卡中單擊“全部添加”按鈕,把“讀者信息”表中的所有字段添加到報(bào)表中,單擊“完成”按鈕就完成報(bào)表的設(shè)計(jì)。設(shè)計(jì)完成的“讀者報(bào)表”如圖所示。Spring 框架是一種管理業(yè)務(wù)對(duì)象的,圖書(shū)管理系統(tǒng)的控制模型都繼承SPRING提供的MULTIACTIONCONTROLLER類(lèi),需要4個(gè)控制器,主要是圖書(shū)控制器、借閱規(guī)則控制器、用戶(hù)控制器和借閱控制器。圖書(shū)實(shí)體類(lèi),它通過(guò)數(shù)據(jù)庫(kù)連接技術(shù) 依據(jù)組件開(kāi)發(fā)模式的思想,系統(tǒng)將訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的功能封裝在組件中?;贘ava可采用Java Bean和EJB技術(shù),考慮到EJB雖然功

注意事項(xiàng)

本文(《圖書(shū)管理系統(tǒng)》中數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn))為本站會(huì)員(仙***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!