2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《數(shù)據(jù)庫應(yīng)用課程設(shè)計》</p><p><b>  綜合實驗報告</b></p><p><b>  目錄</b></p><p>  《數(shù)據(jù)庫應(yīng)用課程設(shè)計》- 0 -</p><p>  1.概述- 3 -</p><p>  1.1 實驗?zāi)康?

2、 3 -</p><p>  1.2 實驗內(nèi)容- 3 -</p><p>  1.3 開發(fā)環(huán)境- 3 -</p><p>  1.4 經(jīng)濟(jì)方面- 4 -</p><p>  1.5 數(shù)據(jù)庫系統(tǒng)的總目標(biāo)- 4 -</p><p>  1.6 數(shù)據(jù)庫要求- 4 -</p><p>  1.

3、7 實驗報告要求- 5 -</p><p>  2.需求分析- 5 -</p><p>  2.1 分析用戶活動- 5 -</p><p>  2.2 確定系統(tǒng)范圍- 6 -</p><p>  3.概念結(jié)構(gòu)設(shè)計- 7 -</p><p>  3.1 系統(tǒng)主要功能- 7 -</p><p

4、>  3.2 設(shè)計流程圖- 8 -</p><p>  3.3 設(shè)計E-R圖- 8 -</p><p>  3.4 局部概念模型綜合成全局概念模型- 10 -</p><p>  4.邏輯結(jié)構(gòu)設(shè)計- 10 -</p><p>  4.1 概念模型轉(zhuǎn)換成邏輯模型- 10 -</p><p>  4.2 設(shè)

5、計應(yīng)用程序與數(shù)據(jù)的接口- 11 -</p><p>  4.3 評價模型- 11 -</p><p>  4.4 修正模型- 11 -</p><p>  5.物理設(shè)計- 12 -</p><p>  5.1 存儲記錄結(jié)構(gòu)設(shè)計- 12 -</p><p>  5.2 確定數(shù)據(jù)存放位置- 12 -</p

6、><p>  5.3 完整性約束- 12 -</p><p>  5.4 程序設(shè)計- 13 -</p><p>  5.5 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計- 13 -</p><p>  5.6 數(shù)據(jù)裝載- 13 -</p><p>  5.7數(shù)據(jù)庫試運行- 13 -</p><p>  6.數(shù)據(jù)庫實現(xiàn)

7、- 14 -</p><p>  7. 系統(tǒng)實現(xiàn)- 19 -</p><p>  7.1 數(shù)據(jù)庫操作語句- 19 -</p><p>  DB.java(JavaBean)- 19 -</p><p>  7.2 用戶參數(shù)記錄- 21 -</p><p>  UserInputInfo.java(JavaBea

8、n)- 21 -</p><p>  7.3 根據(jù)用戶身份登錄- 22 -</p><p>  7.4業(yè)務(wù)員系統(tǒng)- 23 -</p><p>  7.5管理員系統(tǒng)- 29 -</p><p>  8. 效果實現(xiàn)測試及結(jié)果- 29 -</p><p>  9.運行與維護(hù)- 37 -</p>

9、<p>  9.1 數(shù)據(jù)庫的轉(zhuǎn)載和恢復(fù)- 37 -</p><p>  9.2 數(shù)據(jù)庫安全性、完整性控制- 37 -</p><p>  9.3 數(shù)據(jù)庫性能的監(jiān)督、分析和改進(jìn)- 38 -</p><p>  9.4 數(shù)據(jù)庫的重組織和重構(gòu)造- 38 -</p><p>  10.分工情況- 38 -</p>&

10、lt;p>  11.進(jìn)度計劃與執(zhí)行情況- 39 -</p><p>  12.設(shè)計中遇到的問題及解決方案- 39 -</p><p>  13.項目總結(jié)- 40 -</p><p>  14.參考文獻(xiàn)- 41 -</p><p><b>  1.概述</b></p><p><

11、b>  1.1 實驗?zāi)康?lt;/b></p><p> ?。?)讓學(xué)生在掌握數(shù)據(jù)庫的相關(guān)理論知識后,將數(shù)據(jù)庫與軟件開發(fā)相結(jié)合,熟練掌握數(shù)據(jù)庫設(shè)計和基于數(shù)據(jù)庫的應(yīng)用程序開發(fā)。</p><p> ?。?)熟悉對數(shù)據(jù)庫的操作,包括數(shù)據(jù)庫連接、SQL語句、完整性約束、索引,以及視圖等數(shù)據(jù)庫對象的綜合運用。</p><p> ?。?)加深對理論基礎(chǔ)知識的理解:關(guān)

12、系數(shù)據(jù)庫、數(shù)據(jù)庫設(shè)計、事務(wù)等。</p><p>  (4)熟練掌握一種流行的開發(fā)工具,培養(yǎng)綜合開發(fā)項目的經(jīng)驗和協(xié)作交流的能力。</p><p>  (5)使學(xué)生了解使用MyEclipse開發(fā)平臺開發(fā)Java web應(yīng)用的過程和有關(guān)方法,掌握在Java程序中訪問數(shù)據(jù)庫特別是使用JavaBean訪問數(shù)據(jù)庫的程序開發(fā)過程。</p><p><b>  1.2 實

13、驗內(nèi)容</b></p><p>  項目 航空售票信息管理系統(tǒng)</p><p>  要求:能用于所有航空售票處(公司、中心,點)的客戶資料和購送票情況,以及乘機人明細(xì)資料管理,能對客戶累計購票情況進(jìn)行統(tǒng)計分析,具自動編號、快速查詢、任意組合條件查詢、客戶購票統(tǒng)計、送票員和業(yè)務(wù)員管理、操作員權(quán)限控制和密碼設(shè)置等功能,能根據(jù)任意電話號碼快速定位到某一客戶,并錄入購票明細(xì)數(shù)據(jù),其所屬

14、業(yè)務(wù)員功能可考核業(yè)務(wù)員的業(yè)績情況。能制作各種客戶資料報表和客戶購票統(tǒng)計報表等,表格制作具有較強的可擴充性。</p><p><b>  1.3 開發(fā)環(huán)境</b></p><p>  目前的技術(shù)可以支持開發(fā)的新系統(tǒng)</p><p>  操作系統(tǒng): Windows 7 系統(tǒng)</p><p>  開發(fā)工具:MyEclipse8

15、.5 + MYSQL5.1</p><p>  處理器:Intel(R) Core(TM) I5-2410M CPU @ 2.30GHz 2.30GHz</p><p>  安裝內(nèi)存(RAM):4.00GB</p><p>  系統(tǒng)類型:64位操作系統(tǒng)</p><p><b>  1.4 經(jīng)濟(jì)方面</b></

16、p><p><b>  人力成本:4人</b></p><p>  時間成本:8h*4d</p><p>  物力成本:計算機*4臺</p><p>  1.5 數(shù)據(jù)庫系統(tǒng)的總目標(biāo)</p><p>  根據(jù)項目需求搭建航空售票信息管理系統(tǒng),本系統(tǒng)主要用于所有航空售票處(公司、中心,點)內(nèi)部使用,使用對

17、象面向航空售票處的業(yè)務(wù)員與系統(tǒng)管理員,協(xié)助其進(jìn)行客戶明細(xì)資料,乘機人明細(xì)資料,員工明細(xì)資料以及航空售票信息相關(guān)的管理與處理。并且通過數(shù)據(jù)庫基本表信息,可建立相應(yīng)統(tǒng)計報表,并以可視化方式實時顯示在操作界面。</p><p>  本系統(tǒng)從分析項目需求,到建立對應(yīng)數(shù)據(jù)庫,最終搭建Web界面實現(xiàn)JSP數(shù)據(jù)庫系統(tǒng)使用。開發(fā)過程中考慮諸多現(xiàn)實因素,基于項目需求,通過MySQL軟件建立數(shù)據(jù)庫,在Web操作界面盡可能實現(xiàn)功能多元

18、化。同時本系統(tǒng)非常注重系統(tǒng)界面的設(shè)計與美化,為使用者提供舒適的用戶體驗。</p><p><b>  1.6 數(shù)據(jù)庫要求</b></p><p>  1.所有的系統(tǒng)都要包含系統(tǒng)用戶信息,有用戶登錄和添加用戶功能(管理員),另外至少包含7張相關(guān)表信息;</p><p>  2.完整的主外鍵信息;</p><p>  3.用

19、戶自定義的完整性約束;</p><p><b>  4.必要的視圖;</b></p><p>  5.每個查找都有相應(yīng)的索引;</p><p><b>  6.必要的觸發(fā)器;</b></p><p>  7.設(shè)計合理的數(shù)據(jù);</p><p>  1.7 實驗報告要求</

20、p><p>  1)完整的、規(guī)范的開題設(shè)計報告。</p><p>  2)包括目的、意義、內(nèi)容、系統(tǒng)方案、技術(shù)、具體功能和其它要求。</p><p>  3)完整的、規(guī)范的實驗報告</p><p>  4)包括目的、意義、內(nèi)容、系統(tǒng)方案、技術(shù)介紹、具體功能和其它要求。</p><p>  5)數(shù)據(jù)庫設(shè)計的各個步驟,實現(xiàn)方法

21、和效果,總結(jié)。</p><p><b>  2.需求分析</b></p><p>  2.1 分析用戶活動</p><p>  基于對航空售票信息系統(tǒng)的分析,以及項目需求實現(xiàn)需要。了解了該系統(tǒng)主要需要實現(xiàn)的功能,使用對象為業(yè)務(wù)員和系統(tǒng)管理員,故系統(tǒng)模塊由用戶登錄,業(yè)務(wù)員模塊和系統(tǒng)管理員模塊三部分組成。下面就系統(tǒng)模塊各組成部分進(jìn)行介紹。</

22、p><p><b>  用戶登錄</b></p><p>  通過登錄界面接受使用者輸入的賬號,密碼以及登錄職務(wù),系統(tǒng)在數(shù)據(jù)庫中進(jìn)行比對操作,若賬號,密碼以及職務(wù)不對應(yīng),系統(tǒng)智能提示錯誤信息,并返回登錄主界面;若登錄成功,則轉(zhuǎn)入相應(yīng)模塊界面等待使用者下一步操作。</p><p><b>  業(yè)務(wù)員模塊</b></p>

23、;<p>  業(yè)務(wù)員模塊分乘機人信息管理、客戶信息管理,客戶購票統(tǒng)計,登錄密碼修改四部分。業(yè)務(wù)員模塊主要實現(xiàn)業(yè)務(wù)員進(jìn)行乘機人資料明細(xì)管理,管理客戶資料的同時可實現(xiàn)自動編號、快速查詢、任意組合條件查詢;其中業(yè)務(wù)員可通過客戶電話號碼快速定位用戶,并錄入其購票明細(xì)數(shù)據(jù); </p><p>  另外業(yè)務(wù)員可根據(jù)客戶資料與購票信息制作各種客戶資料報表。</p><p>  乘機人信息管

24、理子模塊:實現(xiàn)對乘機人員資料的查詢、添加、修改及刪除操作;</p><p>  客戶信息管理子模塊:可通過快速查詢或任意組合條件查詢管理客戶信息;</p><p>  客戶購票統(tǒng)計子模塊:負(fù)責(zé)制作客戶購票統(tǒng)計報表,可實現(xiàn)對指定時間段內(nèi)客戶購票信息的統(tǒng)計分析;</p><p>  登錄密碼修改子模塊實現(xiàn)業(yè)務(wù)員對登錄密碼的修改操作。(注意:業(yè)務(wù)員無法進(jìn)行自主注冊,只可由

25、管理員添加并分配密碼)</p><p><b>  系統(tǒng)管理員模塊</b></p><p>  系統(tǒng)管理員模塊分員工信息管理、員工賬戶管理,員工業(yè)績報表三部分。系統(tǒng)管理員模塊主要實現(xiàn)對業(yè)務(wù)員或送票員的資料明細(xì)管理,操作員權(quán)限控制和密碼設(shè)置等功能,同時可通過制作員工業(yè)績報表考核業(yè)務(wù)員的業(yè)績情況。</p><p>  員工信息管理:系統(tǒng)管理員可通過

26、快速查詢或任意組合條件查詢管理員工信息;</p><p>  員工賬戶管理:系統(tǒng)管理員對員工賬戶進(jìn)行添加,修改其密碼,刪除操作。(注意:業(yè)務(wù)員無法進(jìn)行自主注冊,只可由管理員添加并分配密碼)</p><p>  員工業(yè)績報表:負(fù)責(zé)制作員工工作業(yè)績報表,可實現(xiàn)對指定時間段內(nèi)員工工作業(yè)績的統(tǒng)計分析;</p><p>  2.2 確定系統(tǒng)范圍</p><

27、p>  首先是主界面,用戶登錄;</p><p> ?。?)用戶登錄后,根據(jù)用戶職務(wù)(業(yè)務(wù)員或系統(tǒng)管理員),轉(zhuǎn)入相應(yīng)界面,進(jìn)行下一步操作。</p><p><b> ?。?)關(guān)聯(lián)圖如下:</b></p><p><b>  3.概念結(jié)構(gòu)設(shè)計</b></p><p>  3.1 系統(tǒng)主要功能&l

28、t;/p><p><b>  用戶登錄</b></p><p><b>  業(yè)務(wù)員功能</b></p><p><b>  乘機人資料明細(xì)管理</b></p><p><b>  客戶資料明細(xì)管理</b></p><p><b&g

29、t;  客戶購票統(tǒng)計</b></p><p><b>  業(yè)務(wù)員登錄密碼修改</b></p><p><b>  管理員功能</b></p><p><b>  員工資料明細(xì)管理</b></p><p><b>  員工賬戶管理</b><

30、/p><p><b>  員工業(yè)績報表</b></p><p><b>  3.2 設(shè)計流程圖</b></p><p><b>  流程圖同關(guān)聯(lián)圖</b></p><p>  3.3 設(shè)計E-R圖</p><p>  Customer(客戶)</p&g

31、t;<p><b>  Staff(員工)</b></p><p>  Ticket(機票)</p><p>  Flight(航班)</p><p><b>  User(用戶)</b></p><p>  3.4 局部概念模型綜合成全局概念模型 </p><p&

32、gt;<b>  全局概念模型</b></p><p><b>  4.邏輯結(jié)構(gòu)設(shè)計</b></p><p>  主要是把概念模型轉(zhuǎn)換成DBMS能處理的邏輯模型,以便獲得更好的設(shè)計模型。</p><p>  4.1 概念模型轉(zhuǎn)換成邏輯模型</p><p>  Customer(CNo,CName,T

33、el,ID);</p><p>  Staff (SNo, SName, Job)</p><p>  Ticket(TNo, Seat, Class, Price)</p><p>  Flight(FNo, Gate, FromPlace, FromTime, ToPlace, ToTime, Capability)</p><p>  

34、Service(Service#, ServiceTime, TNo, SNo, CNo)</p><p>  TF(TNo, FNo)</p><p>  USER(User, Password)</p><p>  4.2 設(shè)計應(yīng)用程序與數(shù)據(jù)的接口</p><p>  在設(shè)計完整的應(yīng)用程序之前,對應(yīng)用程序設(shè)計數(shù)據(jù)存取功能的梗概,提供應(yīng)

35、用程序與數(shù)據(jù)庫之間的邏輯接口,本系統(tǒng)所使用的是JDBC與數(shù)據(jù)庫進(jìn)行連接,間接利用javaBean來實現(xiàn)數(shù)據(jù)庫的相應(yīng)的操作,本系統(tǒng)是使用MySQL數(shù)據(jù)庫進(jìn)行操作,并通過在MyEclipse 8.5中寫入相應(yīng)的javaBean和JDBC的數(shù)據(jù)庫連接接口實現(xiàn)和MySQL數(shù)據(jù)庫的連接,從而實現(xiàn)數(shù)據(jù)庫中建立的表格進(jìn)行操作。</p><p><b>  4.3 評價模型</b></p>&

36、lt;p>  小組對于項目需求進(jìn)行了深入的討論,多次討論修正數(shù)據(jù)庫ER模型,并根據(jù)現(xiàn)實情況以及其他條件對ER模型進(jìn)行修正,實現(xiàn)了項目絕大部分需求,比較理想地表現(xiàn)了實體類型的屬性特征和不同實體間的聯(lián)系,并通過搭建數(shù)據(jù)庫和jsp界面設(shè)計實現(xiàn)邏輯構(gòu)想和項目需求操作的訴求。</p><p><b>  4.4 修正模型</b></p><p>  對于一個成熟的DBMS

37、,必須保證操作事務(wù)的一致性。事務(wù)的一致性指的是在一個事務(wù)執(zhí)行之前和執(zhí)行之后數(shù)據(jù)庫都必須處于一致性狀態(tài)。這種特性稱為事務(wù)的一致性。假如數(shù)據(jù)庫的狀態(tài)滿足所有的完整性約束,就說該數(shù)據(jù)庫是一致的。一致性處理數(shù)據(jù)庫中對所有語義約束的保護(hù)。故在系統(tǒng)實現(xiàn)中應(yīng)實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)“回滾”在操作事務(wù)未成功進(jìn)行,根據(jù)“回滾”機制保持?jǐn)?shù)據(jù)庫數(shù)據(jù)一致性。 以上要求鑒于時間緊迫,小組成員能力有限,雖有構(gòu)想,但未實現(xiàn)。</p><p><

38、b>  5.物理設(shè)計</b></p><p>  5.1 存儲記錄結(jié)構(gòu)設(shè)計</p><p>  對于數(shù)據(jù)庫中的數(shù)據(jù),為了便于系統(tǒng)JSP代碼的實現(xiàn),表格中變量基本上都是定義為字符類型,只不過對于不同的變量的字符長度可能不同,并且對于每個變量的命名可以使用中文的形式,本系統(tǒng)軟件支持中文格式的輸入輸出。強制所以字符編碼為“UTF-8”(包括中文)。</p><

39、;p>  5.2 確定數(shù)據(jù)存放位置</p><p>  本系統(tǒng)將屬于同一表格中的數(shù)據(jù)存放在一起,并且保證屬于同一學(xué)號同一同學(xué)的信息的確定性以及信息的準(zhǔn)確性。</p><p><b>  5.3 完整性約束</b></p><p> ?。?)該系統(tǒng)通過系統(tǒng)首頁登錄功能嚴(yán)格規(guī)定操作員權(quán)限,保證了功能的相對完整性。本系統(tǒng)提供了很多的提示錯誤信息

40、的界面出現(xiàn),并且在錯誤信息界面出現(xiàn)后,會在1秒內(nèi)返回原界面。</p><p> ?。?)本系統(tǒng)支持中文形式的輸入輸出,并且也可以以中文的形式將數(shù)據(jù)存放在數(shù)據(jù)庫中,同樣也可以將數(shù)據(jù)庫中的中文讀取出來進(jìn)行一定的操作。</p><p>  本系統(tǒng)遵循實體完整性約束,參照完整性約束,自定義完整性約束。其中自定義完整約束規(guī)定在TF表(航班機票)中,航班號與機票號值須有效;</p>&l

41、t;p>  系統(tǒng)管理員刪除員工賬號時,應(yīng)先解除User表(用戶)對于主鍵(同員工編號)的約束,即先刪除User表中待刪除員工的記錄,然后再進(jìn)行刪除員工信息操作。</p><p>  另外在系統(tǒng)對于數(shù)據(jù)庫的操作后臺層面,均體現(xiàn)了完整性約束規(guī)則。</p><p>  本系統(tǒng)對于每一個功能模塊都有相對應(yīng)的處理jsp文件以及顯示界面的jsp文件,jsp文件命遵循行業(yè)規(guī)則,可讀性強,從而達(dá)到顯

42、示與處理分開,使得代碼實現(xiàn)思路更加明確。</p><p><b>  5.4 程序設(shè)計</b></p><p>  本系統(tǒng)使用的開發(fā)工具是:MySql MyEclipse 8.5 </p><p>  本系統(tǒng)使用的技術(shù)有:JavaBean JSP JDBC Java HTML</p><p>  5.5 數(shù)

43、據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  確定了數(shù)據(jù)庫邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,根據(jù)所選用的DBMS提供的數(shù)據(jù)定義語言來嚴(yán)格描述數(shù)據(jù)結(jié)構(gòu)。</p><p><b>  5.6 數(shù)據(jù)裝載</b></p><p>  本系統(tǒng)所需要的數(shù)據(jù)量并不是非常大,我們只要通過一定的數(shù)據(jù)量來驗證本系統(tǒng)運行是否能夠成功,是否能夠連接的上數(shù)據(jù)庫,所以本軟件在數(shù)據(jù)裝載的時候完全是

44、使用手工的形式載入,本軟件數(shù)據(jù)庫中在軟件運行之前載入了6組樣例數(shù)據(jù),用于檢測軟件使用的正確性,在軟件的使用過程中,同樣會對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢,刪除,修改,增添,所以在軟件使用的過程中數(shù)據(jù)庫中的數(shù)據(jù)是在不斷的更變的,數(shù)據(jù)變化率較高。</p><p><b>  5.7數(shù)據(jù)庫試運行</b></p><p>  應(yīng)用程序調(diào)試完成,并有一小部分?jǐn)?shù)據(jù)入庫后,就可以開始數(shù)據(jù)庫

45、的試運行。此時系統(tǒng)還不穩(wěn)定,要做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)工作。</p><p> ?。?)功能調(diào)試,即運行應(yīng)用程序,測試程序的各種功能。</p><p> ?。?)性能測試,測量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計目標(biāo)。</p><p><b>  6.數(shù)據(jù)庫實現(xiàn)</b></p><p>  Customer(客戶)</p

46、><p><b>  Staff(員工)</b></p><p>  Flight(航班)</p><p>  Ticket(機票)</p><p><b>  TF(航班機票)</b></p><p>  Service(服務(wù)表)</p><p><

47、;b>  User(用戶)</b></p><p>  customerstat視圖(客戶購票信息統(tǒng)計)</p><p>  passengerinfoview視圖(乘機人信息統(tǒng)計)</p><p>  staffstat視圖(員工業(yè)績報表)</p><p><b>  系統(tǒng)實現(xiàn)</b></p&g

48、t;<p>  本系統(tǒng)對數(shù)據(jù)庫中操作包括對數(shù)據(jù)庫中表的信息增添,刪除,查詢,修改。</p><p>  7.1 數(shù)據(jù)庫操作語句</p><p>  DB.java(JavaBean)</p><p>  package org.db.javabean;</p><p>  import java.sql.*;</p>

49、<p>  public class DB {</p><p>  // 成員變量初始化</p><p>  Connection conn = null; // 數(shù)據(jù)庫連接</p><p>  Statement stmt =null;</p><p>  ResultSet rs = null; // 記錄集</p&g

50、t;<p>  String Username = ""; // 用戶名</p><p>  String Password = ""; // 密碼</p><p>  String email = ""; </p><p>  String tel = ""; </

51、p><p>  //String url = "jdbc:mysql://localhost:3306/airticket2";</p><p>  String url = "jdbc:mysql://localhost:3306/airticket2?seUnicode=true&characterEncoding=utf-8";</p

52、><p>  String user="root";</p><p>  String password="zhoujinghua";</p><p>  // db的構(gòu)建器 (數(shù)據(jù)庫的上下三個差別?。?lt;/p><p>  public DB() {</p><p><b&g

53、t;  try {</b></p><p>  String name = "com.mysql.jdbc.Driver";</p><p>  Class.forName(name);</p><p>  conn = DriverManager.getConnection(url,user,password);</p&

54、gt;<p>  System.out.println("connect success");</p><p>  } catch (Exception e) {</p><p>  // 這樣寫是為了方便調(diào)試程序,出錯打印mydb:就知道在什么地方出錯了</p><p>  System.err.println("myd

55、b: " + e.getMessage());</p><p><b>  }</b></p><p><b>  }</b></p><p>  //關(guān)閉所有的數(shù)據(jù)庫連接資源</p><p>  public void closeResource(){</p><p&

56、gt;<b>  try{</b></p><p>  if(rs!=null)</p><p>  rs.close();</p><p>  if(stmt!=null)</p><p>  stmt.close();</p><p>  if(conn!=null);</p>

57、<p>  conn.close();</p><p><b>  }</b></p><p>  catch(Exception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><

58、b>  }</b></p><p>  // executeQuery方法用于進(jìn)行記錄的查詢操作</p><p>  // 入口參數(shù)為sql語句,返回ResultSet對象</p><p>  public ResultSet executeQuery(String sql) {</p><p>  rs = null;&l

59、t;/p><p><b>  try {</b></p><p>  Statement stmt = conn.createStatement();</p><p>  // 執(zhí)行數(shù)據(jù)庫查詢操作</p><p>  rs = stmt.executeQuery(sql);</p><p>  

60、} catch (SQLException ex) {</p><p>  System.err.println("db.executeQuery: " + ex.getMessage());</p><p><b>  }</b></p><p>  return rs;</p><p><b

61、>  }</b></p><p>  // executeUpdate方法用于進(jìn)行add或者update記錄的操作</p><p>  // 入口參數(shù)為sql語句,成功返回true,否則為false</p><p>  public boolean executeUpdate(String sql) {</p><p>  

62、boolean bupdate = false;</p><p>  rs = null;</p><p><b>  try {</b></p><p>  // 建立數(shù)據(jù)庫連接,其它參數(shù)說明同上面的一樣</p><p>  stmt = conn.createStatement();</p><p

63、>  int rowCount = stmt.executeUpdate(sql);</p><p>  // 如果不成功,bupdate就會返回0</p><p>  if (rowCount != 0)</p><p>  bupdate = true;</p><p>  } catch (SQLException ex) {&l

64、t;/p><p><b>  // 打印出錯信息</b></p><p>  System.err.println("db.executeUpdate:" + ex.getMessage());</p><p><b>  }</b></p><p>  return bupdate

65、;</p><p><b>  }</b></p><p>  // toChinese方法用于將一個字符串進(jìn)行中文處理</p><p>  // 否則將會是???這樣的字符串</p><p>  public static String toChinese(String strvalue) {</p>&

66、lt;p><b>  try {</b></p><p>  if (strvalue == null) {</p><p>  return null;</p><p><b>  } else {</b></p><p>  strvalue = new String(strvalue.g

67、etBytes("ISO8859-1"), "UTF-8");</p><p>  return strvalue;</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  return null;</p

68、><p><b>  }</b></p><p><b>  }</b></p><p>  7.2 用戶參數(shù)記錄 </p><p>  UserInputInfo.java(JavaBean)</p><p>  package org.db.javabean;</p&g

69、t;<p>  public class UserInputInfo{</p><p>  private String Number, Name, Tel, Password, Status;</p><p>  public void setNumber(String cn) {Number = cn;}</p><p>  public voi

70、d setName(String nm) {Name = nm;}</p><p>  public void setTel(String tl) {Tel = tl;}</p><p>  public void setPsw(String psw) {Password = psw;}</p><p>  public void setStatus(

71、String st){</p><p>  if(st.equals("2")) Status = "Sellor";</p><p>  if(st.equals("3")) Status = "Admin";</p><p><b>  }</b></p&

72、gt;<p>  public String getNumber() {return this.Number;}</p><p>  public String getName() {return this.Name;}</p><p>  public String getPsw() {return this.Password;}</p><p>

73、  public String getTel() {return this.Tel;}</p><p>  public String getStatus(){return this.Status;}</p><p><b>  }</b></p><p>  7.3 根據(jù)用戶身份登錄</p><p>  從前臺提取表單

74、數(shù)據(jù) -> 連接數(shù)據(jù)庫 ->查詢數(shù)據(jù)庫 -> 判斷用戶名密碼是否匹配 -> 判斷登錄模式與身份是否匹配 -> 提示相應(yīng)信息并跳轉(zhuǎn)</p><p><b>  具體實現(xiàn):</b></p><p><b>  數(shù)據(jù)庫連接:</b></p><p><b>  詳見7.1</b>

75、;</p><p>  從前臺獲取表單信息,放入指定變量中:</p><p>  request.setCharacterEncoding("UTF-8");</p><p>  String UserNumber = request.getParameter("id");</p><p>  Stri

76、ng UserPsw = request.getParameter("password");</p><p>  String UserStatus = request.getParameter("status");</p><p>  User.setNumber(UserNumber);</p><p>  User.se

77、tStatus(UserStatus);</p><p>  用戶名密碼查詢與匹配:</p><p><b>  查詢語句:</b></p><p>  String sql = "</p><p>  select * from student,employment where student.s# = em

78、ployment.s# and student.s# = ‘” + s+ “’;</p><p>  登錄模式查詢與匹配:</p><p><b>  查詢語句:</b></p><p>  String sql2 = "SELECT SName FROM STAFF WHERE SNO = \"" + User

79、Number + "\";"</p><p><b>  提示相應(yīng)信息并跳轉(zhuǎn)</b></p><p>  if(User.getStatus().equals("Sellor") && Tstatus.charAt(0) == 'Y'){</p><p>  re

80、sponse.setHeader("Refresh","1;URL=/AirTicket/Sellor/Main.jsp");</p><p><b>  }</b></p><p>  else if(User.getStatus() == "Admin" && Tstatus.charAt

81、(0) == 'G'){</p><p>  response.setHeader("Refresh","1;URL=/AirTicket/Admin/Main.jsp");</p><p><b>  業(yè)務(wù)員系統(tǒng)</b></p><p><b>  主頁面</b>&

82、lt;/p><p><b>  總頁面</b></p><p>  <frameset rows="90, *"></p><p>  <frame src="Top.jsp" cols="" scrolling="no"/></p>

83、<p>  <frameset rows="*" cols="197,85%"></p><p>  <frame src="Left.jsp" name="left" scrolling="no"/></p><p>  <frame src=&

84、quot;Bottom.jsp" name = "main"/></p><p>  </frameset> </p><p>  </frameset><noframes></noframes></p><p><b>  頂部頁面</b></

85、p><p>  <p align="right"></p><p>  <script language=JavaScript> </p><p>  today=new Date(); </p><p>  function initArray(){ </p><p>  th

86、is.length=initArray.arguments.length </p><p>  for(var i=0;i<this.length;i++) </p><p>  this[i+1]=initArray.arguments[i]} </p><p>  var d=new initArray( </p><p><

87、b>  "星期日", </b></p><p><b>  "星期一", </b></p><p><b>  "星期二", </b></p><p><b>  "星期三", </b></p>

88、;<p><b>  "星期四", </b></p><p><b>  "星期五", </b></p><p><b>  "星期六"); </b></p><p>  document.write( </p>

89、<p>  "<font color=#FF6600 style='font-size:10pt;font-family: 微軟雅黑'> ", </p><p>  today.getYear(),"年", </p><p>  today.getMonth()+1,"月", </p&g

90、t;<p>  today.getDate(),"日 ", </p><p>  d[today.getDay()+1], </p><p>  "</font>" );</p><p>  </script> </p><p>  &nbsp;&n

91、bsp;</p><p>  <a href="/AirTicket/index.jsp" target="_top" class="STYLE1" align="right" >注銷</a> </p></p><p><b>  左頁面</b><

92、;/p><p><b>  <center></b></p><p>  <span class="STYLE1">用戶 :</p><p>  <% out.println(User.getName()); %> </p><p><b>  歡迎您!<

93、;br></b></p><p>  </span><br></p><p>  <strong><a href="Passenger/PassengerAdmin.jsp" target="main" class="STYLE3">乘機人員信息</a>

94、<br></p><p><b>  <br></b></p><p><b>  <br></b></p><p>  <a href="Customer/CustomerAdmin.jsp" target="main" class=&qu

95、ot;STYLE3">客戶信息管理</a><br></p><p><b>  <br></b></p><p><b>  <br></b></p><p>  <a href="CustomerStat/CustomerStat.jsp&q

96、uot; target="main" class="STYLE3">客戶購票統(tǒng)計</a><br></p><p><b>  <br></b></p><p><b>  <br></b></p><p>  <a href

97、="MyAccount.jsp" target="main" class="STYLE3">登錄密碼修改</a></strong></p><p><b>  </center></b></p><p><b>  右頁面</b></p&g

98、t;<p><b>  空</b></p><p><b>  乘機人員信息頁面</b></p><p>  設(shè)計思路:從前臺提取表單數(shù)據(jù) -> 連接數(shù)據(jù)庫 -> 操作數(shù)據(jù)庫 -> 判定表單信息 -> 獲取結(jié)果</p><p><b>  前臺提取表單數(shù)據(jù)</b>

99、</p><p><b>  查詢:</b></p><p>  String FNO = request.getParameter("fno");</p><p><b>  刪除:</b></p><p>  String FNO = request.getParameter

100、("fno");</p><p>  String CNO = request.getParameter("cno");</p><p><b>  修改:</b></p><p>  String CNO = request.getParameter("cno");</p>

101、;<p>  String OFNO = request.getParameter("ofno");</p><p>  String NFNO = request.getParameter("nfno");</p><p>  String OTNO = request.getParameter("otno");&

102、lt;/p><p>  String NTNO = request.getParameter("ntno");</p><p>  String SEAT = request.getParameter("seat");</p><p>  String CLASS = request.getParameter("clas

103、s");</p><p>  String PRICE = request.getParameter("price");</p><p><b>  添加:</b></p><p>  String CNO = request.getParameter("cno");</p>&l

104、t;p>  String FNO = request.getParameter("fno");</p><p>  String TNO = request.getParameter("tno");</p><p>  String SEAT = request.getParameter("seat");</p>

105、<p>  String CLASS = new String(request.getParameter("class").getBytes("ISO8859-1"),"UTF-8");</p><p>  String PRICE = request.getParameter("price");</p>

106、<p><b>  連接數(shù)據(jù)庫</b></p><p><b>  見7.3</b></p><p><b>  操作數(shù)據(jù)庫</b></p><p>  查詢:String sql = "SELECT * FROM PASSENGERINFOVIEW WHERE FNO = \&q

107、uot;"+ FNO +"\";";</p><p>  刪除:String sql = "DELETE FROM SERVICE WHERE CNO = \""+CNO+"\" AND TNO IN(SELECT TNO FROM TF WHERE FNO = \""+FNO+"\"

108、);";</p><p>  修改:sql = "UPDATE SERVICE SET TNO = \""+NTNO+"\" WHERE CNO = \""+CNO+"\" AND TNO IN(SELECT TNO FROM TF WHERE FNO = \""+OFNO+"\&qu

109、ot;);";</p><p>  添加:sql = "INSERT INTO SERVICE(TNO,SNO,CNO) VALUES(\""+TNO+"\",\""+User.getNumber()+"\",\""+CNO+"\")";</p>&l

110、t;p><b>  判斷信息</b></p><p><b>  見7.3</b></p><p><b>  獲取結(jié)果</b></p><p><b>  查詢: </b></p><p>  rs.last();</p>&l

111、t;p><b>  %></b></p><p><b>  <center></b></p><p>  <table border="2" width="800"></p><p><b>  <caption></

112、b></p><p>  <span class="STYLE1">乘機人信息查詢結(jié)果</span></p><p>  </caption></p><p>  <tr bgcolor="CCCCCC" align="center"></p>

113、;<p>  <th><span class="STYLE2">記錄條數(shù)</span></th></p><p>  <th><span class="STYLE2">航班號</span></th></p><p>  <th>&

114、lt;span class="STYLE2">客戶編號</span></th></p><p>  <th><span class="STYLE2">客戶姓名</span></th></p><p>  <th><span class="STYL

115、E2">客戶手機</span></th></p><p><b>  </tr></b></p><p><b>  <%</b></p><p>  rs.beforeFirst();</p><p>  while(rs.next()){

116、</p><p><b>  %></b></p><p>  <tr align="center"></p><p>  <td><%=rs.getRow() %></td></p><p>  <td><%=rs.getStr

117、ing("FNo") %></td></p><p>  <td><%=rs.getString("CNo") %></td></p><p>  <td><%=rs.getString("CName") %></td></p>

118、<p>  <td><%=rs.getString("Tel") %></td></p><p><b>  </tr></b></p><p>  刪除: if(rs){</p><p>  out.println("刪除成功!");</

119、p><p><b>  }</b></p><p><b>  else{</b></p><p>  out.println("刪除失??!");</p><p><b>  }</b></p><p><b>  修改: &l

120、t;/b></p><p><b>  if(rs){</b></p><p>  out.println("修改SERVICE成功!<br>");</p><p><b>  }</b></p><p><b>  else{</b>&l

121、t;/p><p>  out.println("修改SERVICE失?。?lt;br>");</p><p><b>  } </b></p><p>  sql = "DELETE FROM TF WHERE TNO = \""+OTNO+"\" AND FNO =

122、\""+OFNO+"\";";</p><p>  //out.println(sql+"<br>");</p><p>  rs = DB.executeUpdate(sql);</p><p><b>  if(rs){</b></p><

123、p>  out.println("刪除舊TF成功!<br>");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  out.println("刪除舊TF失敗!<br>");</p>

124、<p><b>  }</b></p><p>  sql = "INSERT INTO TICKET VALUES(\""+NTNO+"\",\""+SEAT+"\",\""+CLASS+"\",\""+PRICE+"\&

125、quot;);";</p><p>  //out.println(sql+"<br>");</p><p>  rs = DB.executeUpdate(sql);</p><p><b>  if(rs){</b></p><p>  out.println("插

126、入新TICKET成功!<br>");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  out.println("插入新TICKET失??!<br>");</p><p><b>

127、  } </b></p><p>  sql = "DELETE FROM TICKET WHERE TNO = \""+OTNO+"\";";</p><p>  //out.println(sql+"<br>");</p><p>  rs = DB.exec

128、uteUpdate(sql);</p><p><b>  if(rs){</b></p><p>  out.println("刪除舊TICKET成功!<br>");</p><p><b>  }</b></p><p><b>  else{</

129、b></p><p>  out.println("刪除舊TICKET失敗!<br>");</p><p><b>  }</b></p><p>  sql = "INSERT INTO TF VALUES(\""+NTNO+"\",\"&quo

130、t;+NFNO+"\");";</p><p>  //out.println(sql+"<br>");</p><p>  rs = DB.executeUpdate(sql);</p><p><b>  if(rs){</b></p><p>  out

131、.println("插入新TF成功!<br>");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  out.println("插入新TF失?。?lt;br>");</p><p>&

132、lt;b>  }</b></p><p><b>  添加: </b></p><p><b>  if(rs){</b></p><p>  out.println("插入新SERVICE成功!<br>");</p><p><b>

133、;  }</b></p><p><b>  else{</b></p><p>  out.println("插入新SERVICE失??!<br>");</p><p><b>  } </b></p><p>  sql = "INSERT I

134、NTO TICKET VALUES(\""+TNO+"\",\""+SEAT+"\",\""+CLASS+"\",\""+PRICE+"\");";</p><p>  //out.println(sql+"<br>&quo

135、t;);</p><p>  rs = DB.executeUpdate(sql);</p><p><b>  if(rs){</b></p><p>  out.println("插入新TICKET成功!<br>");</p><p><b>  }</b><

136、;/p><p><b>  else{</b></p><p>  out.println("插入新TICKET失?。?lt;br>");</p><p><b>  } </b></p><p>  sql = "INSERT INTO TF VALUES(\&qu

137、ot;"+TNO+"\",\""+FNO+"\");";</p><p>  //out.println(sql+"<br>");</p><p>  rs = DB.executeUpdate(sql);</p><p><b>  if(rs

138、){</b></p><p>  out.println("插入新TF成功!<br>");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  out.println("插入新TF失??!&l

139、t;br>");</p><p><b>  }</b></p><p><b>  客戶信息管理</b></p><p>  設(shè)計思路:從前臺提取表單數(shù)據(jù) -> 連接數(shù)據(jù)庫 -> 操作數(shù)據(jù)庫 -> 判定表單信息 -> 給出結(jié)果</p><p>  從前臺獲取

140、表單信息,放入指定變量中: </p><p><b>  詳見7.4.2</b></p><p><b>  數(shù)據(jù)庫連接:</b></p><p><b>  詳見7.4.2</b></p><p><b>  數(shù)據(jù)庫操作:</b></p>

141、<p><b>  詳見7.4.2</b></p><p><b>  判定表單信息:</b></p><p><b>  詳見7.4.2</b></p><p><b>  得出結(jié)果</b></p><p><b>  詳見7.4.2

142、</b></p><p><b>  客戶信息統(tǒng)計</b></p><p>  設(shè)計思路:從前臺提取表單數(shù)據(jù) -> 連接數(shù)據(jù)庫 -> 查詢數(shù)據(jù)庫 -> 判定表單信息 -> 給出相應(yīng)信息提示。</p><p>  具體實現(xiàn): 詳見7.4.2。</p><p><b>  登錄密

143、碼修改</b></p><p>  設(shè)計思路:從前臺提取表單數(shù)據(jù) -> 連接數(shù)據(jù)庫 -> 查詢數(shù)據(jù)庫 -> 判定表單信息 -> 給出相應(yīng)信息提示。</p><p>  具體實現(xiàn):詳見7.4.2。</p><p><b>  管理員系統(tǒng)</b></p><p>  員工信息管理 見

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論