《圖書管理系統(tǒng)》中數(shù)據(jù)庫的優(yōu)化設計與實現(xiàn)
《《圖書管理系統(tǒng)》中數(shù)據(jù)庫的優(yōu)化設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《《圖書管理系統(tǒng)》中數(shù)據(jù)庫的優(yōu)化設計與實現(xiàn)(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 本 科 畢 業(yè) 論 文 論 文 題 目:《圖書管理系統(tǒng)》中數(shù)據(jù)庫的優(yōu)化設計與實現(xiàn) 指 導 老 師: 學 生 姓 名: 學 號: W442509121300001 院 系 :網(wǎng)絡教育學院 專 業(yè):計算機科學與技術 寫 作 批 次 :2011年春 目 錄 摘要 ……………………………………………………………4 Abstract ……………………………………………………………5 導言 …………………………………………………………
2、6 第一章 課題的目的及意義………………………………………7 1.1 可行性分析………………………………………7 第二章 系統(tǒng)框架設計 ……………………………………………8 2.1需求分析…………………………………………9 2.2 各模塊設計 ……………………………………10 第三章 數(shù)據(jù)庫設計 ……………………………………………12 3.1數(shù)據(jù)ER圖 ……………………………………14 3.2數(shù)據(jù)表設計……………………………………14 3.3數(shù)據(jù)查詢算法…………………………………19 第四章 系統(tǒng)界面設計
3、 …………………………………………21 4.1數(shù)據(jù)界面與查詢界面…………………………23 4.2圖書信息窗 ….………………………………21 第五章 實現(xiàn)與總結(jié) ……………………………………………24 5.1系統(tǒng)實現(xiàn)效果 …………………………………25 5.2總結(jié) ….………………………………………25 參考文獻 …………………………………………………………….31 致謝詞 ……………………………………………………………….32 摘要 計算機體系是基于WEB的分布,JAVA是當前滿足這一趨勢的
4、最佳語言之一,由于其本身的開放體系以及簡潔的語法,國內(nèi)JAVA技術應用得以蓬勃發(fā)展起來。本文首先介紹了WEB系統(tǒng)性能優(yōu)化的一些相關技術理論,包括軟件開發(fā)的設計模式、WEB系統(tǒng)性能衡量指標以及WEB系統(tǒng)性能測試方法,然后介紹了J2EE的一些與性能優(yōu)化密切相關的核心技術,如:Servlet、JSP、JavaBean及其相關的性能優(yōu)化方法等等。另外,還專門對數(shù)據(jù)庫性能的優(yōu)化進行了研究。基于上述現(xiàn)狀,本文主要開展以下四方面的工作。一方面,建立基于J2EE和MVC模式的WEB應用系統(tǒng)開發(fā)的解決方案;另一方面,分析J2EE應用系統(tǒng)的性能問題,提出影響系統(tǒng)性能的幾個主要因素;三方面,根據(jù)上面提出的影響系統(tǒng)性
5、能的主要因素分別提出相應的解決策略。如表示層、控制器層、業(yè)務邏輯層以及數(shù)據(jù)庫等方面的優(yōu)化策略。 關鍵詞 :圖書管理系統(tǒng),多層次,功能 Abstract W 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
6、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
7、 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 performa
8、nce 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 abo
9、ve-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
10、 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
11、structure 導言 流水之聲可以養(yǎng)耳,青禾綠草可以養(yǎng)目,觀書譯理可以養(yǎng)心。一部好書就是塵世的一盞明燈,照亮了人們的心靈,也照亮了人類歷史的路徑。書籍成為人們精神和理想的寄托,而書的滋養(yǎng)確實是任何其他事物所無法替代的。由于人們對讀書的需求越來越大,程式醫(yī)囑樣的圖書館應運而生,一直以來使用傳統(tǒng)人工和方式管理檔案,現(xiàn)在圖書各類多數(shù)目龐大,讀者借閱頻繁,這方式工作繁瑣,查詢效率低,數(shù)據(jù)易失,難備份,時間一長,將產(chǎn)生大量文件和數(shù)據(jù),這對查找、更新和維護都有好在困難。隨著Internet的飛速發(fā)展,WEB應用技術日趨成熟。特別
12、是SUN公司推出的J2EE技術被應用于越來越多的企業(yè)系統(tǒng)建設中。自JAVA面世以來,與JAVA性能相關的爭論一直沒有平息,而JAVA也在這些爭論中不斷發(fā)展,慢慢走向成熟。另一方面,企業(yè)的信息化程度加強,對企業(yè)應用系統(tǒng)提出的要求也越來越高。為此,我想作一個圖書管理系統(tǒng)管理的優(yōu)化來對系統(tǒng)所涉及的問題作一個解決方法。 第一章 課題的目的及意義 世界經(jīng)濟發(fā)展已進入一個激烈競爭的年代,可以說,誰先獲得信息,誰就有可能抓住發(fā)展經(jīng)濟的機遇。同樣,誰能很好地管理和利用信息
13、,誰就有可能占領市場,獲得效益。國內(nèi)外大量事實已說明:在目前這個激烈競爭的市場經(jīng)濟中,誰的信息管理現(xiàn)代化水平高。 我選擇了“圖書館管理系統(tǒng)”這樣一個教為普遍,同時又較為典型的課題。在這樣一個科技高速發(fā)展的社會里,僅有理論知識是顯然不行的,所以,我希望通過開發(fā)這個系統(tǒng),能更好地把理論與實際結(jié)合起來,充分將自己所學的專業(yè)知識應用于實踐之中,并在實踐中不斷充實自己,提高自己的專業(yè)技能水平,以獲取更多的教益。選題的目的及研究意義:圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫數(shù)據(jù)管理新模式。在對圖書、讀者的管理,其實是對圖書、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無疑會為管理者對圖書管理系統(tǒng)提供極大的幫助。圖書館
14、的使命在于培養(yǎng)社會公眾的閱讀習慣、支持各類教育、提供和激發(fā)創(chuàng)造機會、加強文化保存與傳播、保證獲取各種知識、提供知識服務和促進信息技術的發(fā)展,以知識自由為圖書館職業(yè)的邏輯起點核心價值最具綜合性與統(tǒng)攝性, 并演繹出其它圖書館各核心價值體系, 圖書館應與所有倡導自由表達和自由獲取思想的個人和團體合作”和“不受年齡、種族、性別、宗教信仰、國籍、語一言或社會地位的限制”等方面; 富有成效的參與和民主的發(fā)展有賴于良好的教育和對知識、思想、文化及信息的自由和不受限制的獲取。對信息和知識利用與獲取得到滿足,那么社會公眾對圖書館這種特有的信息物利益’意識獲得滿足。在倡導自由、公平社會里,社會公眾信自、利益的獲得
15、和滿足必須依靠和通過利用圖書館信息資源提供各種制度關系中得到體現(xiàn), ,知識的最大利用原則得到更廣泛的認同,并發(fā)展為“每本書有其讀者”的職業(yè)法則。到本世紀初,由于信息資源的網(wǎng)絡化和數(shù)字化,圖書館信息資源共建、共享的思想得到落實,圖書館信息的社會效益得到發(fā)展,這使圖書館的信息價值得到進一步體現(xiàn)。項目背景: 隨著信息膨脹和工作節(jié)奏的日益加快,手工模式已經(jīng)無法滿足辦公現(xiàn)代化的需要,辦公自動化系統(tǒng)作為提高工作效率、規(guī)范辦公制度、降低辦公成本、方便領導決策的重要工具,電子辦公正領導著現(xiàn)代化辦公的潮流。目的:利用先進的科學技術和信息資源,為提高辦公效率,輔助決策,求得更好的效果,以達到既定(即經(jīng)濟或其它方面
16、)的目標。選題的目的及研究意義:圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫數(shù)據(jù)管理新模式。在對圖書、讀者的管理,其實是對圖書、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無疑會為管理者對圖書管理系統(tǒng)提供極大的幫助。 要求:安全、及時、準確、可靠地采集和傳輸辦公相關的所有信息 思路:采用計算機、通信技術、應用計算機設備、通信設備實現(xiàn)自動化辦公。 1.1 可行性分析 可行性分析就是在系統(tǒng)調(diào)查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)開發(fā)包括經(jīng)經(jīng)濟可行性、技術可行性、操作可行性??尚行苑治鲆螅褐饕δ苁秦撠焾D書外借情況和圖書管理。只有以圖書管理員的身份才可以進行管理。可行性分析目標:方便圖
17、書館管理人員對圖書的借閱、歸還等方便快捷的管理方式,同時也讓讀者隨時可以清楚自己的借閱情況。公司的圖書管理涉及圖書信息、讀者信息、圖書借閱等多種數(shù)據(jù)管理。從管理睥角度可將圖書分為三類:圖書信息管理、系統(tǒng)用戶管理、讀者數(shù)據(jù)管理。圖書信息管理包括圖書購入、借還、查詢等操作,系統(tǒng)用戶管理包括用戶類別和用戶數(shù)據(jù)管理,讀者數(shù)據(jù)管理 包括,讀者的類別和個人數(shù)據(jù)的錄入、修改和刪除。經(jīng)過實際考察與分析,圖書管理系統(tǒng)主要應用有發(fā)下功能:清楚圖書管理系統(tǒng)需要實現(xiàn)的功能主要有五大塊:“新書登記”、“借書管理”、“還書管理”、 “用戶管理”和“書籍查詢”模塊。其中日常工作管理和基本資料維護是整個系統(tǒng)的核心。本次可行性
18、分析是按照前面給出的步驟進行的,即按照復查項目目標和規(guī)模,研究目前正使用的系統(tǒng),導出新系統(tǒng)的高層邏輯模型,重新定義問題這一循環(huán)反復過程進行的。本系統(tǒng)的研制和開發(fā)充分考慮用戶工作流程、計算機操作水平等,盡可能提供更人性化、直觀的界面,滿足用戶要求。系統(tǒng)的操作方式在用戶組織內(nèi)可行。本系統(tǒng)采用的是JSP、Servlet和MySQL開發(fā),Windows XP操作系統(tǒng),用Dreamweaver進行前臺網(wǎng)頁界面設計、采用JDBC方式與后臺數(shù)據(jù)庫進行連接,完成數(shù)據(jù)的添加、修改、刪除、查詢等功能。 Servlet技術是Sun公司提供的一種實現(xiàn)動態(tài)網(wǎng)頁的解決方案,它是基于Java編程語言的WEB服務器端編程技
19、術,主要用于在WEB服務器端獲得客戶端的訪問請求信息和動態(tài)生成對客戶端的響應消息。Servlet技術也是JSP技術(另外一種動態(tài)網(wǎng)頁開發(fā)技術)的基礎。一個Servlet程序就是一個實現(xiàn)了特殊接口的Java類,用于被支持Servlet的WEB服務器調(diào)用和運行,即只能運行于具有Servlet引擎的WEB服務器端。一個Servlet程序負責處理它所對應的一個或一組URL地址的訪問請求,接收訪問請求信息和產(chǎn)生響應內(nèi)容。 JDBC(Java Data Base Connection,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言
20、編寫的類和接口組成。JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應用程序,同時,JDBC也是個商標名。有了JDBC,向各種關系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL調(diào)用,將Java語言和JDBC結(jié)合起來使程序員只須寫一遍程序就可以讓它在任何平臺上運行。 JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服
21、務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口,而且JDBC 還擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中即使這些職員所用的計算機有 Windows、Maci
22、ntosh 和UNIX 等各種不同的操作系統(tǒng)。 第二章 系統(tǒng)框架設計 j2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統(tǒng)提供了良好的機制:J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。這之所以成為可能是因為J2EE擁有廣泛的業(yè)界支持和一些重要的企業(yè)計算領域供應商的參與。J2EE允許公司把一些通用的、很繁瑣的服務端任務交給中間件供應商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應地縮短了開發(fā)時間。(1)伸
23、縮性。支持異構(gòu)環(huán)境: J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算環(huán)境中是十分關鍵的。J2EE標準也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。(2)可伸縮性: 企業(yè)必須要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新客戶。基于J2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至
24、256個處理器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應用的需要。穩(wěn)定的可用性: 一個服務器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。若是意外停機,那會有災難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。(3). J2EE 的四層模型J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)他們所在的層分布在不同的機器上。
25、事實上,sun設計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議――通常是某種數(shù)據(jù)庫協(xié)議。 2.1需求分析. 現(xiàn)在J2EE 的多層企業(yè)級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的每種服務提供一個獨立的層,以下是 J2EE 典型的四層結(jié)構(gòu):運行在客戶端機器上的客戶層組件運行在J2EE服務器上的Web層組件運行在J2EE服務器上的業(yè)務邏輯層組件運行在EIS服務器上的企業(yè)信息系統(tǒng)(Enterp
26、rise information system)層軟件J2EE應用程序組件J2EE應用程序是由組件構(gòu)成的.J2EE組件是具有獨立功能的軟件單元,它們通過相關的類和文件組裝成J2EE應用程序,并與其他組件交互。J2EE說明書中定義了以下的J2EE組件應用客戶端程序和applets是客戶層組件.Java Servlet和JavaServer Pages(JSP)是web層組件.Enterprise JavaBeans(EJB)是業(yè)務層組件.客戶層組件,J2EE應用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的.web 層組件J2EE web層組件可以是JSP 頁面或Servlets.按照J2E
27、E規(guī)范,靜態(tài)的HTML頁面和Applets不算是web層組件。web層可能包含某些 JavaBean 對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務層上的enterprise bean 來進行處理。由運行在業(yè)務層上的enterprise bean 進行處理.表明了一個enterprise bean 是如何從客戶端程序接收數(shù)據(jù),進行處理(如果必要的話), 并發(fā)送到EIS 層儲存的,這個過程也可以逆向進行。有三種企業(yè)級的bean: 會話(session) beans, 實體(entity) beans, 和 消息驅(qū)動(message-driven) beans. 會話bean 表示與客戶端程序的臨時
28、交互. 當客戶端程序執(zhí)行完后,會話bean 和相關數(shù)據(jù)就會消失. 相反, 實體bean 表示數(shù)據(jù)庫的表中一行永久的記錄當客戶端程序中止或服務器關閉時, 就會有潛在的服務保證實體bean 的數(shù)據(jù)得以保存消息驅(qū)動 bean 結(jié)合了會話bean 和 JMS的消息監(jiān)聽器的特性, 允許一個業(yè)務層組件異步接收JMS 消息.企業(yè)信息系統(tǒng)層企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎建設系統(tǒng)例如企業(yè)資源計劃 (ERP), 大型機事務處理, 數(shù)據(jù)庫系統(tǒng),和其它的遺留信息系統(tǒng). J2EE 的結(jié)構(gòu)這種基于組件,具有平臺無關性的J2EE 結(jié)構(gòu)使得J2EE 程序的編寫十分簡單,因為業(yè)務邏輯被封裝成可復用的組件,并且J
29、2EE 服務器以容器的形式為所有的組件類型提供后臺服務.容器和服務容器設置定制了J2EE服務器所提供得內(nèi)在支持,包括安全,事務管理,JNDI(Java Naming and Directory Interface)尋址,遠程連接等服務,以下列出最重要的幾種服務:J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean ,這樣只有被授權的用戶才能訪問系統(tǒng)資源. 每一客戶屬于一個特別的角色,而每個角色只允許激活特定的方法。你應在enterprise bean的布置描述中聲明角色和可被激活的方法 2.2 各模塊設計。 ?。?)新書登記:主要功能是記錄新到書
30、籍的原始資料。在數(shù)據(jù)庫中插入一條新記錄,該記錄包括登記編號、種類、名稱、作者、。(2)借書管理:主要功能是記錄借書人和書編號,進行借書過程。在數(shù)據(jù)庫中插入一條借書記錄,該記錄包括借書人、書編號、借出日期、是否借出。(3)還書管理:主要功能是在借閱登記表中找到相應的記錄,將該記錄的相應數(shù)據(jù)插入到還書記錄中,同時將借書記錄刪除,并保存在借閱歷史記錄表中。(4)用戶管理:包括新會員的資料入庫,以及現(xiàn)有會員資料的修改和刪除。(5)書籍查詢:根據(jù)相應的圖書 信息對所有書籍進行所需查詢。此查詢包括:‘書名’、‘作者’。 J2EE 事務管理(Transaction Management)模型讓你指定組成
31、一個事務中所有方法間的關系,這樣一個事務中的所有方法被當成一個單一的單元. 當客戶端激活一個enterprise bean中的方法,容器介入一管理事務。因有容器管理事務,在enterprise bean中不必對事務的邊界進行編碼。要求控制分布式事務的代碼會非常復雜。你只需在布置描述文件中聲明enterprise bean的事務屬性,而不用編寫并調(diào)試復雜的代碼。容器將讀此文件并為你處理此enterprise bean的事務。JNDI 尋址(JNDI Lookup)服務向企業(yè)內(nèi)的多重名字和目錄服務提供了一個統(tǒng)一的接口,這樣應用程序組件可以訪問名字和目錄服務.J2EE遠程連接(Remote Clie
32、nt Connectivity)模型管理客戶端和enterprise bean間的低層交互. 當一個enterprise bean創(chuàng)建后, 一個客戶端可以調(diào)用它的方法就象它和客戶端位于同一虛擬機上一樣.生存周期管理(Life Cycle Management)模型管理enterprise bean的創(chuàng)建和移除,一個enterprise bean在其生存周期中將會歷經(jīng)幾種狀態(tài)。容器創(chuàng)建enterprise bean,并在可用實例池與活動狀態(tài)中移動他,而最終將其從容器中移除。即使可以調(diào)用enterprisebean的create及remove方法,容器也將會在后臺執(zhí)行這些任務。truts(表示層)
33、+Spring(業(yè)務層)+Hibernate(持久層) Struts:是一個表示層框架,主要作用是界面展示,接收請求,分發(fā)請求。 在MVC框架中,Struts屬于VC層次,負責界面表現(xiàn),負責MVC關系的分發(fā)。(View:沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)Hibernate:是一個持久層框架,它只負責與關系數(shù)據(jù)庫的操作。 Spring:是一個業(yè)務層框架,是一個整合的框架,能夠很好地黏合表示層與持久層。我們知道,傳統(tǒng)的Java Web應用程序是采用JSP+Servle
34、t+Javabean來實現(xiàn)的,這種模式實現(xiàn)了最基本的MVC分層,使的程序結(jié)構(gòu)分為幾層,有負責前臺展示的 JSP、負責流程邏輯控制的Servlet以及負責數(shù)據(jù)封裝的Javabean。但是這種結(jié)構(gòu)仍然存在問題:如JSP頁面中需要使用符號嵌入很多的 Java代碼,造成頁面結(jié)構(gòu)混亂,Servlet和Javabean負責了大量的跳轉(zhuǎn)和運算工作,耦合緊密,程序復用度低等等。 Struts 為了解決這些問題,出現(xiàn)了Struts框架,它是一個完美的MVC實現(xiàn),它有一個中央控制類(一個 Servlet),針對不同的業(yè)務,我們需要一個Action類負責頁面跳轉(zhuǎn)和后臺邏輯運算,一個或幾個JSP頁面負責數(shù)據(jù)的輸入和
35、輸出顯示,還有一個 Form類負責傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標簽,就像使用HTML標簽一樣簡單,但是可以完成非常復雜的邏輯。從此JSP頁面中不需要出現(xiàn)一行包圍的Java代碼了。 可是所有的運算邏輯都放在Struts的Action里將使得 Action類復用度低和邏輯混亂,所以通常人們會把整個Web應用程序分為三層,Struts負責顯示層,它調(diào)用業(yè)務層完成運算邏輯,業(yè)務層再調(diào)用持久層完成數(shù)據(jù)庫的讀寫。 使用JDBC連接來讀寫數(shù)據(jù)庫,我們最常見的就是打開數(shù)據(jù)庫連接、使用復雜的SQL語句進行讀寫、關閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一
36、個非常煩瑣的過程。 Hibernate 這時出現(xiàn)了 Hibernate框架,它需要你創(chuàng)建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數(shù)據(jù)庫表的屬性一一對應,當然也可以實現(xiàn)關系數(shù)據(jù)庫的各種表件關聯(lián)的對應。當我們需要相關操作是,不用再關注數(shù)據(jù)庫表。我們不用再去一行行的查詢數(shù)據(jù)庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發(fā)真正面向?qū)ο?,而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。 現(xiàn)在我們有三個層了,可是每層之間的調(diào)用是怎樣的呢?比如顯示層的Struts需要調(diào)用一個業(yè)務類,就需要new一個業(yè)務類出來,然后使用;業(yè)務層需要調(diào)用持久層
37、的類,也需要new一個持久層類出來用。通過這種new的方式互相調(diào)用就是軟件開發(fā)中最糟糕設計的體現(xiàn)。簡單的說,就是調(diào)用者依賴被調(diào)用者,它們之間形成了強耦合,如果我想在其他地方復用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調(diào)用,復用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。 為此,出現(xiàn)Spring框架。 Spring Spring的作用就是完全解耦類之間的依賴關系,一個類如果要依賴什么,那就是一個接口。至于如何實現(xiàn)這個接口,這都不重要了。只要拿到一個實現(xiàn)了這個接口的類,就可以輕松的通過xml配置文件把實現(xiàn)類注射到調(diào)用接口的那個類里。所有類之間的這種
38、依賴關系就完全通過配置文件的方式替代了。所以 Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。 現(xiàn)在的結(jié)構(gòu)是,Struts負責顯示層,Hibernate負責持久層,Spring負責中間的業(yè)務層,這個結(jié)構(gòu)是目前國內(nèi)最流行的Java Web應用程序架構(gòu)了。另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內(nèi)部模式非常優(yōu)秀,以至于Spring自己也實現(xiàn)了一個使用依賴注射的MVC框架,叫做Spring MVC,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務層,使用更加方便和強大。 Struts框架是200
39、0年就開始起步了,到目前已經(jīng)發(fā)展了5年,技術相當成熟,目前全球Java開發(fā)中Struts框架是顯示層技術中當之無愧的王者。它擁有大量的用戶群和很好的開發(fā)團隊。這也是國內(nèi)大部分Java軟件公司對新進員工的基本要求。 其他 Java這個名詞似乎注定和開源緊密聯(lián)系在一起了,在Java界,每天都有大量的開源技術出現(xiàn),由于是開放源代碼的,技術中存在的問題和不足很快就會被人發(fā)現(xiàn),開源軟件提供者會很快的修正或擴展這些技術,因此版本更新很快,幾個星期或者幾天就有一個新版本出來。 當我們在技術線路中選擇了Java,也就選擇了你必須持續(xù)學習,經(jīng)常關注最新的技術,了解它們,看是否適合你的需要,然后學習使用它們。
40、第三章 數(shù)據(jù)庫設計 數(shù)據(jù)庫主要著重于數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關系的分析。一般采用E-R圖,即實體-關系模型來分析數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關系。編寫好檔案系統(tǒng)的業(yè)務邏輯類,將有關系統(tǒng)域模型全部建全,因為使用STRUTS的MVC框架,所以接下來將編寫STRUTS的控制器類,根據(jù)檔案管理實現(xiàn)功能;用戶管理控制類、登錄控制器類和檔案借閱記錄控制器類、控制器類都繼承了Atruts提供 AcrionSupport控制存在位置接口PositionService, 主要用來定義存放位置,包括新增、修改、刪除和查詢存在位置。MVC全稱為MODEL-View-Controlle
41、t,把一個應用的輸入層、業(yè)務處理層、控制流程按照Vie(視圖)、 Model (模型) 、Controllet(控制器)的方式進行分離,這樣一個應用程序就被劃分成相對獨立而又協(xié)同工作的三個層,視圖層、模型層、控制層。在MVC設計模式中,客戶端WEB瀏覽器會提交各種不同的用戶請求,這些請求由控制器處理,控制器根據(jù)事件的類型來改變模型視圖效果,呈現(xiàn)在用戶面前,而模型 也通過視圖所獲得的用戶提交的數(shù)據(jù)進行業(yè)務邏輯的處理.MVC模式主要由模型、控制器、視圖三部分組成 ,其中控制器的主要責任是接收客戶端所提交的請求,并將請求轉(zhuǎn)發(fā)給適當?shù)哪P蛯ο筮M行處理,再將處理的結(jié)果發(fā)給視圖進行顯示。MVC通常會使用S
42、ervlet 來擔任控制器的角色,因為在Servlet中可以直接使用H ttpServletRequst, H ttpServleponse 等類來表示請求和請求響應對象。模型的主要作用是根據(jù)客戶的請求來進行相應的業(yè)務運算,這部分的功能在MVC中主要使用JavaBean 來完成,這部分的代碼不能依賴于Servlet 的API,從而可以保證業(yè)務邏輯的可移植性,控制器將模型運算的結(jié)果送到視圖,視圖負責將這部分數(shù)據(jù)顯示在客戶端,這功能在MVC中主要是使用JSP來完成,因為JSP 允許在HTML當中插入JAVA代碼,從而完成復雜的操作,數(shù)據(jù)庫主要著重于數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關系的分析。一般采用
43、E-R圖,即實體-關系模型來分析數(shù)據(jù)對象的屬性和數(shù)據(jù)對象之間的關系。編寫好檔案系統(tǒng)的業(yè)務邏輯類,將有關系統(tǒng)域模型全部建全,因為使用STRUTS的MVC框架,所以接下來將編寫STRUTS的控制器類,根據(jù)檔案管理實現(xiàn)功能;用戶管理控制類、登錄控制器類和檔案借閱記錄控制器類、控制器類都繼承了Atruts提供 AcrionSupport控制存在位置接口PositionService, 主要用來定義存放位置,包括新增、修改、刪除和查詢存在位置。MVC全稱為MODEL-View-Controllet,把一個應用的輸入層、業(yè)務處理層、控制流程按照Vie(視圖)、 Model (模型) 、Controllet
44、(控制器)的方式進行分離,這樣一個應用程序就被劃分成相對獨立而又協(xié)同工作的三個層,視圖層、模型層、控制層。在MVC設計模式中,客戶端WEB瀏覽器會提交各種不同的用戶請求,這些請求由控制器處理,控制器根據(jù)事件的類型來改變模型視圖效果,呈現(xiàn)在用戶面前,而模型 也通過視圖所獲得的用戶提交的數(shù)據(jù)進行業(yè)務邏輯的處理.MVC模式主要由模型、控制器、視圖三部分組成 ,其中控制器的主要責任是接收客戶端所提交的請求,并將請求轉(zhuǎn)發(fā)給適當?shù)哪P蛯ο筮M行處理,再將處理的結(jié)果發(fā)給視圖進行顯示。MVC通常會使用Servlet 來擔任控制器的角色,因為在Servlet中可以直接使用H ttpServletRequst, H
45、 ttpServleponse 等類來表示請求和請求響應對象。模型的主要作用是根據(jù)客戶的請求來進行相應的業(yè)務運算,這部分的功能在MVC中主要使用JavaBean 來完成,這部分的代碼不能依賴于Servlet 的API,從而可以保證業(yè)務邏輯的可移植性,控制器將模型運算的結(jié)果送到視圖,視圖負責將這部分數(shù)據(jù)顯示在客戶端,這功能在MVC中主要是使用JSP來完成,因為JSP 允許在HTML當中插入JAVA代碼,從而完成復雜的操作。 3.1數(shù)據(jù)ER圖 要求:該系統(tǒng)應該具有對圖書信息、讀者信息進行存儲和管理,并能夠保存圖書信息、讀者信息、借閱信息、帳號信息,并具有用戶管理的功能。該系統(tǒng)能極大地減少圖書
46、管理員的日常工作,并提供圖書借閱報表,給圖書管理員的圖書管理提供輔助決策的功能。功能:圖書管理系統(tǒng)最主要功能是圖書信息管理、讀者信息管理、圖書借閱管理、用戶管理等功能。性能、書管理系統(tǒng)的使用者是圖書管理員和讀者。對于圖書管理員的管理工作,性能要求不是很嚴格,但需要方便圖書入庫等操作。系統(tǒng)的輸出(1)圖書庫存情況(2)讀者圖書預定需求。(3)圖書借閱情況。系統(tǒng)的輸入(1)新書入庫。(2)讀者圖書借閱。(3)用戶數(shù)據(jù)添加。 處理流程和數(shù)據(jù)流3.1數(shù)據(jù)ER圖… 圖 書 表 讀 者 表 借閱登記表 管理員 注銷 用戶登錄 類型 。。
47、。。 編號 讀者 管理 管理員 編號 密碼 名稱 修改 刪除 添加 借還 還書時間 修改 管理理 圖書 借書時間 。。。。 類型 編號 刪除 添加 圖3.11 圖書管理系統(tǒng)E-R (2)實體的各種屬性:用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和響應的實體連接起來。 (3)實體之間的聯(lián)系:用菱形表示,菱形內(nèi)為聯(lián)系的名稱。實體玫實體之間聯(lián)系表示,菱形內(nèi)為聯(lián)系的名稱。實體和實體之間的聯(lián)系較多,比較常見的聯(lián)系有1:1,1:N.和N:M這三種。 3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設計概念是獨立于實際數(shù)據(jù)模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進行數(shù)據(jù)
48、庫應用的設計。 第一種轉(zhuǎn)化是將實體轉(zhuǎn)化 為關系表,這種轉(zhuǎn)化簡單,需要將實體的屬性定義為表的屬性即可。第二種轉(zhuǎn)化是聯(lián)系的轉(zhuǎn)化。即將各個實體之間的聯(lián)系轉(zhuǎn)化為表格之間的關系,如外部鍵的定義。圖書管理系統(tǒng)中要有圖書,圖書是圖書管理系統(tǒng)中密不可分的部分,因此要創(chuàng)建一圖書信息實體,用來保存圖書的詳細信息。圖書信息實體屬性圖如下: 圖書信息實體 名稱 類型 條形碼 操作員 入庫時間 庫存數(shù)量 書架 頁碼 價格 作者 讀者 出版社 圖3-2圖書信息實體 讀者是圖書管理系統(tǒng)重要組成部分,這里創(chuàng)建了一個讀者信息實體,用來存儲讀者的詳細信息。讀者信息實體E_R圖 讀者信息實體
49、 讀者名稱 讀者編號 性別 備注 操作員 注冊日期 電話 證件號碼 讀者類型 讀者信息實體屬性圖 圖書管理系統(tǒng)為了增加系統(tǒng)的安全性,管理員只有在系統(tǒng)登陸模塊驗證通過后才能進入管理員的操作界面,因此在數(shù)據(jù)庫中創(chuàng)建一個存放登陸用戶信息的管理 編號 名稱 密碼 管理員實體 表2-2讀者信息 列 名 數(shù)據(jù)類型 長 度 主 鍵 證號 int 4 Yes 姓名 varchar 20 聯(lián)系方式 varchar 50 已借書數(shù)目 int 4 讀者類別 int 4 表2-3借閱信息 列 名 數(shù)據(jù)類型
50、 長 度 主 鍵 證號 int 4 Yes 借閱日期 datetime 8 應歸還日期 datetime 8 實際歸還日期 datetime 8 續(xù)借 bit 1 表2-4書籍信息 列 名 數(shù)據(jù)類型 長 度 主 鍵 書號 char 10 Yes 書類別 nchar 50 作者 nchar 50 定價 money 8 總冊數(shù) int 4 庫存量 int 4 出版社 varchar 50 書名 varchar 50 表2-5管理者信息 列 名 數(shù)據(jù)
51、類型 長 度 主 鍵 用戶名稱 char 20 Yes 密碼 char 20 權限 int 4 錄模塊設計 為用戶常用功能,包括用戶登陸、驗證碼、用戶注冊、找回密碼。 1用戶登陸用戶通過用戶名,密碼,驗證碼登陸。 2用戶注冊可以通過點擊鏈接到注冊頁面,完成新用戶注冊。 3驗證碼用戶登陸時要求用戶輸入一組隨機的文字,假如看不清可以點擊“看不清楚,換一張”,若輸入錯誤則不能登陸。 4密碼找回當個人忘記密碼時,由其通過回復注冊時填寫的問題,如果正確可以找回密碼。 5.2.2 登錄模塊實現(xiàn) 用戶登錄:打開網(wǎng)頁進入首頁點擊“用戶注冊”進入到用戶
52、注冊頁面,如圖5.2, 填寫應經(jīng)注冊過的賬號和密碼,如果賬號或密碼錯誤,則系統(tǒng)提示登錄失敗,重新登錄,成功則跳轉(zhuǎn)到首頁。忘記密碼的用戶可以點擊“取回密碼”按鈕,按照系統(tǒng)的提示一步一步的操縱,填寫密碼提示問題的答案,從而找回密碼。 在主窗體上單擊“顯示報表”,那么就可以查看反映讀者信息和借閱信息的報表,借閱信息的報表如圖所示。 讀者信息表
<讀者信息表>
56、表 在login對話框輸入 信息然后查詢 1.選擇File 菜單 ,New APPlication …選項,在 APPlication File Nan輸入 c:\MYBOOKAPP\MYBOOKAPP.ear, 在application Disply Name輸入MYBOOKAPP, 點 OK .2. 選擇FILE菜單,MEW ENTETPRISE BEAN…選項,第一個界面為直接NEXT。第二個界面,選中Create New Jar File Ln APPlication,在下面的下拉列表框中選擇,MYbookapp, 在JAR Display Nam
57、e 中指定名字BOOKJAR, 在Contens 框 中添加 CLASS 文件,按 EDIT 添加,在ROOTDIRECTORY 中指定C:\MYBOOKAPP\BEN為根目錄,按回車,選出BOOK,CLASS\BOOKHOME\CLASS\BOOKBEAN.CLASS通過ADD添加到下邊的框中,這是三個基本構(gòu)建EJB文件,按OK確定,按NEXT進入下一步,第三界面中:在BEAN TYPE中選中Entity,在Enterprise Bean CLASS中選中 borrowbean, 在 Enterprise Bean Name中指定 bookEJB, 在Remote Home lnterfa
58、ce 中指定BookWJB, 在 Remote Home Lntetface中選中BookHome, 在 Remote Lnterface中選中book ,按,NEXT進入下一步,第四、五、六、七個界面中可以直接按NEXT,體各項情況,不用做配置。在第八個界面中,Resource Facrories Referenced in Code r 頁面中,點 ADD 然后在 CodeName 中填入 JDBC/Book,在 JNDI NAME中填入 jdbc/book,最后點 FINISH完成。 4.選擇FILE菜單,民NEW Enterprise bean…t選項,第一個界面為說明,直接
59、NEXT,第二個選中Create new jarFlie ln application,在列表框選MYbookAPP 在JAR Diwplay NAME 中指定名字BORROWJAR 在 CONTENTS 添加CLASS文件,按 EDLT 添加,Dorectory 中指定 c:\MYBOOKAPP\BEAN為目錄,按回車,選Borrw.class\BorrowHome.class.borrowbean.class 通過ADD添加到下邊框,這三個最基本構(gòu)建EJB的文件,按OK, 按next進入下一步,第三個界面中:在Bean type 中選中Entity,在 EnterpriseBEAN
60、class中選中borrowbean,在 Enterprise Bean Name指定borrowEJB,在R emote lnterface 中選中BORROWM 按NEXT進入下一步按,NEXT進入下一步,第四、五、六、七個界面中可以直接按NEXT,體各項情況,不用做配置。在第八個界面也就是,Resource Facrories Referenced in Code r 頁面中,點 ADD 然后在 CodeName 中填入 JDBC/Book,在 JNDI NAME中填入 jdbc/book,最后點 FINISH完成。指定Home Lnterface 為 borrowHome ,指定
61、loca/Remote lnterface 為borrow在下面的JNDIName 中選擇myborrow.再次ADD,然后指定 lnterfaces 為remote 指定home lnterface 為usethom e指定 type為ebtity指定 lnterfaff 為re,pte指定home ;mterave 在下面的jndi NAME中選擇 myuset 接下來將JAVA客戶端程序添加 mybookAPP到應用中.NAME 中指定名字 booksessoinJAR, 在 CONTENTS 框中添加CLASS文件 按 EDIT添加 ,在ROOT DIRECTORY中
62、指定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$treeS
63、L,class,myclientframe,class,mycilentFRAME$TREEsl.class.mycllienttree.class,QueryPanel$btal.class,Querypanei.class,RETURNpaNEI$BTal.CLASS,reTURNpanel$btReturnal.class,ReturmPanel.class, 通過ADD添加到下邊的框中按OK,按NEXT進入下一步,第三個界面中:在MAINCLASS中選中myclient,指定DISPLAY 為 Display Name為MYCLIENT,按NEXT進入一下步,第四個界面中可以直接按NE
64、XT,第五個界面中,EJB`SREFERENCDE IN CODE的頁面中,點ADD,然后指定CODED NAME 為 ejb/simplebooksession,指定TYPE為SESSION,指定LNTERFACES為Remote,指定 home lnterface 為 booksessionhome, 1)在選擇菜單“項目”中的“添加新項”對話框中選擇Crystal Report選項。不要把它寫成軟件開發(fā)過程。 (2)在“名稱”文本框中輸入報表名“讀者信息報表.rpt”,單擊“打開”按鈕,就會彈出入圖所示的“Crystal Report庫”對話
65、框。 (3)在其對話框中選擇“使用報表專家”單選按鈕,在“選擇專家”列表框中選擇“標準”選項,單擊“確定”按鈕,進入下一步。 (4)在彈出的“標準報表專家”對話框中,選擇“可用的數(shù)據(jù)源”列表框中的OLB DB(ADO)選項,就會彈“OLE DB(ADO)”對話框。選擇OLB DB提供程序為Microsoft OLE DB Provider for SQL Server,單擊“下一步”按鈕,顯示 “連接信息”對話框。 (5)在其中設置連接信息,單擊“完成”按鈕,返回“標準報表專家”對話框。 (6)選擇數(shù)據(jù)源為OLE DB(ADO)中的Library數(shù)據(jù)庫,并且選中其中的
66、“讀者信息”表。單擊“插入表”按鈕,把“讀者信息”表插入到報表中,單擊“下一步”按鈕。 (7)在“字段”選項卡中單擊“全部添加”按鈕,把“讀者信息”表中的所有字段添加到報表中,單擊“完成”按鈕就完成報表的設計。 設計完成的“讀者報表”如圖所示。 Spring 框架是一種管理業(yè)務對象的,圖書管理系統(tǒng)的控制模型都繼承SPRING提供的MULTIACTIONCONTROLLER類,需要4個控制器,主要是圖書控制器、借閱規(guī)則控制器、用戶控制器和借閱控制器。圖書實體類,它通過數(shù)據(jù)庫連接技術 依據(jù)組件開發(fā)模式的思想,系統(tǒng)將訪問數(shù)據(jù)庫的功能封裝在組件中?;贘ava可采用Java Bean和EJB技術,考慮到EJB雖然功
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 平均數(shù)課件(教育精品)
- 婦科腫瘤放療進展
- 注射機有關參數(shù)校核
- 五年級科學維護生態(tài)平衡-PPT
- 心臟術后觀察及監(jiān)護要點
- 生本教育從改變自己開始
- 部編版一年級下冊《文具的家》課件
- 人教初中地理八上《1第2節(jié)-人口》課件-(10)
- 部編小學二年級下冊語文傳統(tǒng)節(jié)日課件
- 《科學探究:歐姆定律》課件-(公開課獲獎)2022年滬科版物理-
- S7-1200-PLC應用基礎ppt課件第8章-PLC應用系統(tǒng)設計實例
- 人教版五年級下冊長方體和正方體《求不規(guī)則物體的體積》課件
- 中職版《走進物流》ppt課件模塊二-項目一-走進貨運物流
- 中考歷史一輪復習-侵略與反抗課件-新人教版
- 肝功能障礙患者合理用藥房文通課件