[精品論文]JAVA航空訂票系統(tǒng)論文_第1頁
[精品論文]JAVA航空訂票系統(tǒng)論文_第2頁
[精品論文]JAVA航空訂票系統(tǒng)論文_第3頁
[精品論文]JAVA航空訂票系統(tǒng)論文_第4頁
[精品論文]JAVA航空訂票系統(tǒng)論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計課程定做 QQ1714879127本科畢業(yè)論文java航空訂票系統(tǒng)摘 要當前中國民航市場擴大迅速,隨著生活水平的提高,越來越多的人選擇飛機出行,對航空公司的服務(wù)要求的越來越高,為了適應(yīng)快速發(fā)展的需求,管理大量數(shù)據(jù),有效地穩(wěn)定的管理航空公司,我們要為某航空公司開發(fā)一套國內(nèi)機票售票系統(tǒng),要求能通過分布在全國各主要城市的該航空公司的營業(yè)網(wǎng)點為顧客提供航班查詢,購買機票以及退票的服務(wù)。該系統(tǒng)的工作流程如下:當顧客到達營業(yè)網(wǎng)點后向航空公司營業(yè)員提供出發(fā)地,目的地和出發(fā)日期,營業(yè)員根據(jù)以上信息,操作軟件,連接航空公司的服務(wù)器,查詢滿足條件的航班,然后根據(jù)顧客的要求選擇某個航班,輸入乘客信息,以及艙位信息,然后執(zhí)行出票操作。該系統(tǒng)在營業(yè)網(wǎng)點內(nèi)能夠完成營業(yè)員登錄,查詢航班,出票等功能。在航空公司內(nèi)部能夠完成添加或刪除航班,添加或刪除營業(yè)網(wǎng)點,添加或刪除營業(yè)員等功能。除此之外,該系統(tǒng)還要求能統(tǒng)計每個營業(yè)網(wǎng)點的業(yè)務(wù)量,以及每位營業(yè)員的工作量,并將這些信息保存在服務(wù)器端,并能在服務(wù)器端隨時查詢。關(guān)鍵詞: 民航 管理系統(tǒng) 分層部署 Abstract The current Chinese commercial aviation expansion of market is rapid, along with the living standard enhancement, more and more many people chooses the airplane journey, to airlines service request more and more high, in order to adapt the fast development demand, the management mass datas, the stable management airline, we must develop a set of domestic airplane ticket booking system effectively for some airline, the request can through distribute provide the scheduled flight inquiry in the national each main city this airlines business mesh point for the customer, the service which the purchase airplane ticket as well as returns a ticket.This system work flow is as follows: When the customer arrives business mesh point backward airline shop employees to provide embarks above, the destination and embarks the date, the shop employee according to the information, operates the software, the connection airlines server, the inquiry satisfies the condition the scheduled flight, then chooses some scheduled flight according to customers request, inputs the passenger information, as well as the seat on a ship information, then the execution shows a ticket the operation.This system can complete the shop employee in business mesh point to register, the inquiry scheduled flight, shows a ticket and so on the functions.Can complete the increase or the deletion scheduled flight in the airline interior, the increase or the deletion business mesh point, the increase or deletes functions and so on shop employee.In addition, this system also requests to be able to count each business mesh point the business volume, as well as each shop employees work load, and these information preservation in the server end, and can inquire as necessary in the server end.Key words :The commercial aviation the management system management system the lamination deployment目 錄1.引言1.1民航發(fā)展概況1.2 技術(shù)選擇1.3 開發(fā)工具1.2.1CS與BS 1.2.2java技術(shù)1.3 技術(shù)選擇2.需求分析: 2.1軟件分層與部署: 2.2系統(tǒng)功能模塊: 2.3系統(tǒng)活動圖: 2.3用例圖: 2.31客戶端用例: 2.3.2服務(wù)器端用例:3.概要設(shè)計: 3.1業(yè)務(wù)模型: 3.2數(shù)據(jù)庫設(shè)計 3.2.1飛機機型表(AIRPLANE_MODEL): 3.2.2航班計劃表(FLIGHT_SCHEDULER): 3.2.3航班表(FLIGHT): 3.2.4營業(yè)網(wǎng)點表(BRANCH): 3.2.5出票記錄表(TICKET_ORDER): 3.3DAO接口設(shè)計 3.3.1FlightDAO: 3.3.2BranchDAO: 3.3.3TicketOrderDAO: 3.4主要工作流程: 3.5詳細時序圖4.詳細設(shè)計4.1流程詳細分析 4.2用表格顯示表單 4.3 hibernate映射關(guān)系5.后續(xù)改進6.總結(jié)致謝參考文獻畢業(yè)設(shè)計課程定做 QQ171487912729內(nèi)蒙古農(nóng)業(yè)大學學士學位論文1.引言1.1民航發(fā)展概況2007年,民用航空行業(yè)完成旅客總周轉(zhuǎn)量2776.3億人公里、旅客運輸量19452.1萬人、貨物周轉(zhuǎn)量115.6億噸公里,民用航空貨運量394.9萬噸,比2006年同期分別增長18.7%、1.7%和14.3%。國內(nèi)航線(含港澳)三項指標分別完成232.5億噸公里、1952.1萬人和272萬噸,同比分別增長17.1%、16.1%和12.3%;國際航線三項指標分別完成129.1億噸公里、1884.1萬人和119.4萬噸,同比分別增長26.4%、20.8%和26.2%。在人民幣持續(xù)升值預(yù)期明確、燃油成本波動相對較平和以及2008年奧運會、2010年世博會、亞運會等相對積極因素推動下,行業(yè)正處于景氣度不斷提升時期。 根據(jù)計劃,中國民用航空工業(yè)“十一五”期間將在以下5個方面取得積極進展:重點民用航空產(chǎn)品;加快民用航空產(chǎn)業(yè)化進程;增強民用航空科研生產(chǎn)能力;增強民用航空工業(yè)的自主創(chuàng)新能力;履行政府職能,進一步加強行業(yè)管理。在“十一五”期間,中國將投入約1400億元人民幣用于機場建設(shè)。這將為民航業(yè)的發(fā)展創(chuàng)造有利條件。預(yù)計2006年至2010年間,中國民航航空運輸總周轉(zhuǎn)量年均增長保持在14%左右,2010年民航運輸飛機將達到1550架,年均增長12%。本報告在對中國民用航空市場進行分析的同時,也將行業(yè)主力廠商的重點信息收入其中,并對行業(yè)內(nèi)的上市公司企業(yè)進行深入的財務(wù)分析;在市場集中度分析方面,本報告力求全面反映中國民用航空市場占有率的真實情況,深入挖掘市場CR4和CR8等核心市場數(shù)據(jù),并在此基礎(chǔ)上對產(chǎn)業(yè)價值鏈進行深度的剖析,是中國民用航空市場極具研究價值的行業(yè)性分析報告。 根據(jù)研究院的預(yù)測,2008年全球航空運輸業(yè)的表現(xiàn)將不及2007年。預(yù)計今年全行業(yè)的毛收入大約為5140億美元,凈利潤是50億美元,盈利率為1%。 從目前到2026年,全球市場新增客機和貨機的數(shù)量將達24300架。我們對市場的預(yù)測認為,民用客機的最大需求來自亞太地區(qū),其中中國仍然是最大市場之一。全球航空客運預(yù)計以平均每年4.9%的速度增長,在20年內(nèi)增長將近3倍,全球航空公司100座以上飛機機隊的規(guī)模也將成倍增長,由目前的13300架增加到2026年的28550架,預(yù)計接近8150架舊飛機需要更新,這就意味著市場需要23400架新飛機,價值2.6萬億美元。與此同時,全球航空貨運預(yù)計以更快的速度增長,年平均增長率達到5.8%。加上機隊更新所需的飛機數(shù),預(yù)計未來20年內(nèi)需要3800多架新貨機,其中900多架將由新我們要為某機票代理公司開發(fā)一套機票預(yù)定系統(tǒng),該系統(tǒng)要求通過分布在每一個代理點的客戶端機器完成查詢航班和出票的功能。該軟件系統(tǒng)由兩部分組成,安裝在代理點機器上的程序是該系統(tǒng)的客戶端軟件;另外還有安裝在代理公司機器上的服務(wù)器端軟件。客戶端軟件能夠完成與服務(wù)器的通信,根據(jù)給定的出發(fā)地和目的地以及出發(fā)日期向服務(wù)器發(fā)送航班查詢請求和出票的請求。服務(wù)器端軟件能夠接受客戶端請求,完成航班查詢和出票功能,并向客戶端返回結(jié)果。同時,服務(wù)器端軟件還能進行代理商的管理,記錄并統(tǒng)計每個代理點的業(yè)務(wù)量并以日志文件的方式保存下來。飛機來滿足。1.2 技術(shù)選擇1.2.1 CS結(jié)構(gòu)與BS結(jié)構(gòu)B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫。瀏覽器通過eb Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互。用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript)和ActiveX技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當今應(yīng)用軟件的首選體系結(jié)構(gòu)。B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。甚至可以在線申請,通過公司內(nèi)部的安全認證(如證書)后,不需要人的參與,系統(tǒng)可以自動分配給用戶一個賬號進入系統(tǒng)。/采用Internet/Intranet技術(shù),適用于廣域網(wǎng)環(huán)境 /支持更多的客戶??筛鶕?jù)訪問量動態(tài)配置WEB服務(wù)器、應(yīng)用服務(wù)器,以保證系統(tǒng)性能。 /客戶端只需標準的瀏覽器 /采用面向?qū)ο蠹夹g(shù),代碼可重用性好 /系統(tǒng)擴展維護簡單 /開發(fā)費用較高,開發(fā)周期較長 C/S結(jié)構(gòu),即Client/Server(客戶機/服務(wù)器)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,可以充分利用兩端硬件環(huán)境的優(yōu)勢。早期的軟件系統(tǒng)多以此作為首選設(shè)計標準。 B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript)和ActiveX技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當今應(yīng)用軟件的首選體系結(jié)構(gòu)。 C/S 與 B/S 區(qū)別: Client/Server是建立在局域網(wǎng)的基礎(chǔ)上的.Browser/Server是建立在廣域網(wǎng)的基礎(chǔ)上的. 1硬件環(huán)境不同: C/S 一般建立在專用的網(wǎng)絡(luò)上, 小范圍里的網(wǎng)絡(luò)環(huán)境, 局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù). B/S 建立在廣域網(wǎng)之上的, 不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話上網(wǎng), 租用設(shè)備. 信息自己管理. 有比C/S更強的適應(yīng)范圍, 一般只要有操作系統(tǒng)和瀏覽器就行 2對安全要求不同 C/S 一般面向相對固定的用戶群, 對信息安全的控制能力很強. 一般高度機密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜. 可以通過B/S發(fā)布部分可公開信息. B/S 建立在廣域網(wǎng)之上, 對安全的控制能力相對弱, 面向是不可知的用戶群. 3對程序架構(gòu)不同 C/S 程序可以更加注重流程, 可以對權(quán)限多層次校驗, 對系統(tǒng)運行速度可以較少考慮. B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優(yōu)化的基礎(chǔ)之上. 比C/S有更高的要求 B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢, 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng). SUN 和IBM推的JavaBean 構(gòu)件技術(shù)等,使 B/S更加成熟. 4軟件重用不同 C/S 程序可以不可避免的整體性考慮, 構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好. B/S 對的多重結(jié)構(gòu),要求構(gòu)件相對獨立的功能. 能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子 5系統(tǒng)維護不同 系統(tǒng)維護是軟件生存周期中,開銷大, -重要 C/S 程序由于整體性, 必須整體考察, 處理出現(xiàn)的問題以及系統(tǒng)升級. 升級難. 可能是再做一個全新的系統(tǒng) B/S 構(gòu)件組成,方面構(gòu)件個別的更換,實現(xiàn)系統(tǒng)的無縫升級. 系統(tǒng)維護開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實現(xiàn)升級. 6處理問題不同 C/S 程序可以處理用戶面固定, 并且在相同區(qū)域, 安全要求高需求, 與操作系統(tǒng)相關(guān). 應(yīng)該都是相同的系統(tǒng) B/S 建立在廣域網(wǎng)上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的. 與操作系統(tǒng)平臺關(guān)系最小. 7用戶接口不同 C/S 多是建立的Window平臺上,表現(xiàn)方法有限,對程序員普遍要求較高 B/S 建立在瀏覽器上, 有更加豐富和生動的表現(xiàn)方式與用戶交流. 并且大部分難度減低,減低開發(fā)成本. 8信息流不同 C/S 程序一般是典型的中央集權(quán)的機械式處理, 交互性相對低 B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更象交易中心1.2.2Java技術(shù) Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言(以下簡稱Java語言)和Java平臺的總稱。用Java實現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動感的web,internate計算。從此,Java被廣泛接受并推動了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。另一方面,Java技術(shù)也不斷更新。Java平臺由Java虛擬機(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應(yīng)用程序就可運行?,F(xiàn)在Java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺基于Java1.4,最近版本為Java1.6。 Java分為三個體系JavaSE,JavaEE,JavaME。Java語言Java語言是一個支持網(wǎng)絡(luò)計算的面向?qū)ο蟪绦蛟O(shè)計語言。Java語言吸收了Smalltalk語言和C+語言的優(yōu)點,并增加了其它特性,如支持并發(fā)程序設(shè)計、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。主要特性如下:1、Java語言是簡單的。Java語言的語法與C語言和C+語言很接近,使得大多數(shù)程序員很容易學習和使用Java。另一方面,Java丟棄了C+ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔憂。2、Java語言是一個面向?qū)ο蟮?。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C+ 語言只對虛函數(shù)使用動態(tài)綁定??傊?,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。3、Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方法激活)機制也是開發(fā)分布式應(yīng)用的重要手段。4、Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。5、Java語言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 6、Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 7、Java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSI C實現(xiàn)的。8、Java語言是解釋型的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式, 然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。9、Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C+。 10、Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。 Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制(關(guān)鍵字為synchronized)。11、Java語言是動態(tài)的。Java語言的設(shè)計目標之一是適應(yīng)于動態(tài)變化的環(huán)境。Java程序需要的類能動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護費用。Java對對象技術(shù)的全面支持和Java平臺內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。1.3 開發(fā)工具Eclipse:Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。 Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。JDBC:JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標名。 hibernate:Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。下面對這五的核心接口分別加以介紹。Session接口:Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSesion對象稱為用戶session。SessionFactory接口:SessionFactroy接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。Configuration接口:Configuration接口負責配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。Transaction接口:Transaction接口負責事務(wù)相關(guān)的操作。它是可選的,可發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。Query和Criteria接口:Query和Criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。2需求分析:2.1軟件分層與部署:我把軟件非為三個層次:分別是表現(xiàn)層,業(yè)務(wù)層,和持久層。表現(xiàn)層即是客戶端,客戶端包裝請求,通過socket發(fā)放服務(wù)器。服務(wù)器通過控制器,把請求轉(zhuǎn)發(fā)給不同的模塊處理。模塊調(diào)用相應(yīng)的Dao訪問數(shù)據(jù)庫。軟件分層實現(xiàn)了格模塊功能之間的松散耦合,有利于功能擴展,系統(tǒng)維護。圖1 部署圖2.2系統(tǒng)功能模塊:主要的系統(tǒng)功能模塊如下:客戶端模塊: 1,代理商登陸模塊BranchDAO.getBrancht()2,查詢航班模塊(A):FlightDAO.getAllFlights()3,訂票模塊(A)OrderTicketDAO.order()4,修改密碼模塊(A):AgentDAO.modifyPassword() 服務(wù)器模塊: 1,添加營業(yè)網(wǎng)點模塊(B):BranchDAO.addBranch() 2,刪除營業(yè)網(wǎng)點模塊(B):BranchDAO.removeBranch() 3,查詢營業(yè)網(wǎng)點模塊(B):BranchDAO.addBranch() 4,添加飛機型號模塊(B):PlaneModelDAO.addPlaneModel()5,添加航班計劃模塊(B):FlightDAO.addFlightSchedular()6,查詢航班計劃模塊(B) FlightDAO.getAllFlightSchedulars()7,添加航班模塊(B):FlightlDAO.addFlightl()8,統(tǒng)計所有出票記錄模塊:TicketOrderDAO.getAllTicketOrder()9,統(tǒng)計網(wǎng)點出票記錄模塊: TicketOrderDAO.getBranchTicketOrder()圖2 模塊劃分2.3系統(tǒng)活動圖:系統(tǒng)活動過程如下:服務(wù)器讀取配置文件,啟動。之后可以進行航班管理,網(wǎng)點管理,統(tǒng)計信息等??蛻舳俗x取配置文件,啟動,連接服務(wù)器,登陸成功后,才可以進行航班查詢修改密碼,訂票等操作。每一步操作都要發(fā)往服務(wù)器處理。服務(wù)器同時可以服務(wù)多個客戶端線程。圖3 系統(tǒng)活動圖2.3用例圖:2.31客戶端用例:此圖描述了客戶端的各功能依賴關(guān)系圖4 客戶端用例圖2.3.2服務(wù)器端用例:此圖描述了服務(wù)器各功能關(guān)系。圖5 服務(wù)器端用例圖3.概要設(shè)計:3.1業(yè)務(wù)模型:通過上面的分析,我建立了下列業(yè)務(wù)模型航班計劃(Flight Scheduler):用來描述由某個航空公司執(zhí)行的某個定期航班的計劃表。例如:由中國國際航空公司執(zhí)行的每天早上8:00從北京起飛,上午10:00到達上海的CA1202就是一個航班計劃。屬性:航班號,起始日期,結(jié)束日期,出發(fā)地,目的地,離港時間,到港時間,里程,飛機機型,班期,基準票價。航班(Flight):用來描述在某個確定日期執(zhí)行某個定期航班計劃的一次航班。例如:2008年5月25日從北京飛上海的CA1202就是一個航班的實例。屬性:航班計劃,出發(fā)日期,各艙剩余座位數(shù),折扣。起始日期(Start Date):用來描述某個航班計劃開始的日期。結(jié)束日期(End Date):用來描述某個航班計劃結(jié)束的日期。營業(yè)網(wǎng)點(Branch):用來描述航空公司的某個分支機構(gòu),該機構(gòu)能使用該系統(tǒng)為顧客提供查詢航班和出票的服務(wù)。營業(yè)網(wǎng)點通過若干臺終端機器與航空公司的服務(wù)器相連,屬性:編號,名稱,密碼,城市,地址,。航班號(planemodel):由航空公司給航班計劃定義的唯一標識號碼,該號碼由2位英文字符和4位數(shù)字組成,2位英文字符是航空公司編碼,4位數(shù)字是航班編碼。例如:CA1202就是一個航班計劃的航班號,其中CA代表中國國際航空公司,1202代表航班的編號。出發(fā)地(From City):用來描述某個航班計劃的起飛城市和機場,所有國內(nèi)機場均用三個英文字母的代碼表示,詳情請見附錄I(國內(nèi)機場代碼表)。目的地(To City):用來描述某個航班計劃的到達城市和機場,所有國內(nèi)機場均用三個英文字母的代碼表示,詳情請見附錄I(國內(nèi)機場代碼表)。離港時間:(Departure):用來描述某個航班計劃的從出發(fā)地機場離開的時刻,離港時間一般代表飛機艙門關(guān)閉,不再接收乘客的時刻。該時間精確到分鐘。到港時間:(Arrival):用來描述某個航班計劃到達目的地機場的時間,到港時間一般代表飛機艙門開啟,允許乘客下飛機的時刻,該時間精確到分鐘。出發(fā)日期(Date):用來描述某個航班的出發(fā)日期,該日期精確到某一天。班期(Scheduler):用來描述某個航班計劃在一周之內(nèi)哪些天有航班,哪些天沒有航班。艙位等級:(Cabin Class):用來描述航班的不同艙位,一般分為三種:頭等艙(F),公物艙(C),經(jīng)濟艙(Y)。不同的艙位等級具有不同的機票折扣,詳情請參見艙位折扣和機票價格。*實際情況中航空公司定義的艙位等級可能更復(fù)雜,在本項目中為簡化業(yè)務(wù)模型,只對艙位等級作上述三種劃分。乘客類型:(Passenger type):用來描述乘坐航班的乘客的類型,一般分為三種:成人(A)(age12),兒童(C)(2age=12),嬰兒(I)(0=age=2)。不同的乘客類型具有不同的機票折扣,詳情請見乘客折扣。在這三種乘客類型中,成人和兒童占用座位,而嬰兒不占用座位,嬰兒票不能單獨出售,一張嬰兒票必須憑一張成人票售出。飛機機型:(Airplane Model):用來描述執(zhí)行某個航班計劃的飛機的型號,一般來講,一個航班計劃的各次航班都應(yīng)該采用同種機型的飛機來執(zhí)行。不同的飛機型號有不同的航程及各艙座位數(shù)。詳情請參見附錄II民航飛機型號一覽表。*實際情況中,各種機型的座位數(shù)是不一樣的,同一機型還分好幾個系列,如B737(波音737)有B737-200、B737-300.B737-900等多個系列,每個系列座位數(shù)都不一樣。即使是同一型號、同一系列的機型,所屬的航空公司不同,座位數(shù)也會不同,因為航空公司在購買飛機時,會根據(jù)自己的需要要求廠家采用不同的布局,不同的布局會有不同的頭等艙、公務(wù)艙、經(jīng)濟艙座位數(shù)。在本項目中為簡化業(yè)務(wù)模型,我們認為同種型號的飛機各艙座位數(shù)是固定的?;鶞势眱r:(Full Price):是指某個航班在沒有季節(jié)折扣時的一張經(jīng)濟艙成人票的價格,該價格作為該航班計劃的基準價格,最終機票價格應(yīng)該在此基礎(chǔ)上乘以季節(jié)折扣,艙位折扣和乘客類型折扣。季節(jié)折扣:(priceoff):航空公司根據(jù)不同季節(jié)的客流狀況調(diào)整的航班的折扣,只有經(jīng)濟艙的成人票才享受季節(jié)折扣。艙位折扣:(Class Discount):不同艙位在基準價格基礎(chǔ)上的價格系數(shù),頭等艙為1.5,公務(wù)艙為1.3,經(jīng)濟艙為1.0乘客類型折扣:(Passenger Discount):不同乘客類型在基準票價基礎(chǔ)上的價格系數(shù),成人為1.0,兒童為0.5,嬰兒為0.1。機票訂單(Ticket Order):一張成功出票的機票記錄,機票價格:(Ticket Price):一張機票的價格,機票價格由以下公式計算:經(jīng)濟艙成人票票價=基準價格*季節(jié)折扣其他艙位乘客票價=基準價格*艙位折扣*乘客類型折扣其中抽象出以下數(shù)據(jù)類型:其總艙位等級和機票類型為枚舉類型。圖6 類圖3.2數(shù)據(jù)庫設(shè)計根據(jù)數(shù)據(jù)模型,設(shè)計數(shù)據(jù)庫如下:其中航班計劃表有一個外間引用飛機機型表,航班表引用航班計劃表,訂單表引用航班表和網(wǎng)點表。3.2.1飛機機型表(AIRPLANE_MODEL):表1 飛機機型表字段名描述類型約束model機型VARCHAR (20)PRIMARY KEYmaxlength最大航程NUMBER(6)NOT NULLfirst_class_seats頭等艙座位數(shù)NUMBER(3)NOT NULLbusiness_class_seats公務(wù)艙座位數(shù)NUMBER(3)NOT NULLeconomy_class_seats經(jīng)濟艙座位數(shù)NUMBER(3)NOT NULL3.2.2航班計劃表(FLIGHT_SCHEDULER):表2 航班計劃表字段名描述類型約束flight_number航班號CHAR(6)PRIMARY KEYstart_date開始日期DATENOT NULLend_date結(jié)束日期DATENOT NULLFromaddress出發(fā)地機場CHAR(3)REFERENCES airport.airport_codetoaddress目的地機場CHAR(3)REFERENCES airport.airport_codeNOT NULLstarttime離港時間DATENOT NULLendtime到港時間DATENOT NULLairplane執(zhí)行機型VARCHAR(20)REFERENCES airplane_model.modelNOT NULLscheduler班期CHAR(7)NOT NULLsail_length航程NUMBER(5)NOT NULL3.2.3航班表(FLIGHT):表3 航班表字段名描述類型約束id航班編號NUMBER(8)PRIMARY KEYflight_number航班號CHAR (6)REFERENCES flight_scheduler. flight_numbercalendar出發(fā)日期DATENOT NULLfirst_class_remain_seats頭等艙剩余座位數(shù)NUMBER(3)NOT NULLbusiness_class_remain _seats公務(wù)艙剩余座位數(shù)NUMBER(3)NOT NULLeconomy_class_remain _seats經(jīng)濟艙剩余座位數(shù)NUMBER(3)NOT NULLpriceoff季節(jié)折扣NUMBER(4,2)NOT NULL DEFAULT 1.03.2.4營業(yè)網(wǎng)點表(BRANCH):表4 營業(yè)網(wǎng)點表字段名描述類型約束備注id網(wǎng)點編號NUMBER (4)PRIMARY KEYname網(wǎng)點名稱VARCHAR(40)NOT NULLpassword密碼VARCHAR (15)NOT NULLaddress地址VARCHAR(50)NOT NULLcity所在城市VARCHAR(10)NOT NULL3.2.5出票記錄表(TICKET_ORDER):表5 出票記錄表字段名描述類型約束id機票編號NUMBER(10)PRIMARY KEYflight_id航班編號NUMBER(8)NOT NULLREFERENCES FLIGHT.idpassengername乘客姓名VARCHAR(40)NOT NULLpassengerid證件號碼VARCHAR(20)NOT NULLCalendar出票日期DATENOT NULLcabinclass艙位等級CHAR(1)NOT NULL CHECK IN(F,C,Y)tickettype乘客類型CHAR(1)NOT NULL CHECK IN(A,C,I)branch_id營業(yè)網(wǎng)點編號NUMBER(4)NOT NULL REFERENCES BRANCH.id3.3 DAO接口設(shè)計設(shè)計了通用的DAO接口,flightDAO用來航班計劃,航班的數(shù)據(jù)訪問。BranchDAO用來訪問網(wǎng)點數(shù)據(jù)。TicketOrderDAO用來訪問票單數(shù)據(jù)。可以創(chuàng)建不同的實現(xiàn)類來實現(xiàn)接口,使標準制定和標準實現(xiàn)分離。如從文件中讀取數(shù)據(jù)可以定義FlightDaoFromFile,利用JDBC訪問數(shù)據(jù)可以定義FlightDaoFromJDBC,利用hibernate訪問數(shù)據(jù)可以定義FlightDaoFromHibernate等。3.3.1FlightDAO:package com.tarena.abs.dao;import com.tarena.abs.model.*;import java.util.*;/* * 對航班和航班計劃數(shù)據(jù)訪問的接口。 * author zhoukai * */public interface FlightDAO/* * 根據(jù)指定出發(fā)地,目的地和出發(fā)日期在底層數(shù)據(jù)源中查找 * 得到所有的航班對象的集合。 * param fromAddr 出發(fā)地 * param toAddr 目的地 * param date 出發(fā)日期 * return 航班集合 */public Set getAllFlights(String fromAddr,String toAddr,Calendar date);/* * 執(zhí)行出票的操作。 * param ord 訂單對象 * return 若出票成功返回true,否則返回false。 */public boolean order(Order ord);/* * 添加指定的航班計劃對象。 * param fs 要添加的航班計劃對象。 * return 添加成功返回true,否則返回false。 */public boolean addFlightSchedular(FlightSchedular fs);/* * 根據(jù)給定的航班編號在底層數(shù)據(jù)源中刪除該航班計劃,以及該計劃下的所有航班。 * param flightNumber 要刪除的航班計劃的航班編號。 * return 刪除成功返回true,否則返回false。 */public boolean removeFlightSchedular(String flightNumber); * 得到所有航班計劃對象 * return */public Set getAllFlightSchedulars();/*添加航班*/public boolean addFlight(Flight fl);3.3.2 BranchDAO:package com.tarena.abs.dao;import com.tarena.abs.model.*;import java.util.*;/* * 對網(wǎng)點數(shù)據(jù)進行訪問的接口。 * author zhoukai * */public interface BranchDAO/* * 根據(jù)給定的姓名和密碼在底層數(shù)據(jù)源中查找代理商的紀錄, * 若找到,則返回該代理商對象,若沒找到或密碼錯誤則返回null。 * param name 網(wǎng)點名稱 * param passwd 網(wǎng)點密碼密碼 * return 找到的網(wǎng)點對象或null */public Branch getBranch(String name,String passwd);/* * 向底層數(shù)據(jù)中添加一個網(wǎng)點紀錄。 * param user 要添加的網(wǎng)

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論