課程設(shè)計(jì)案例-機(jī)票預(yù)訂信息系統(tǒng)_第1頁(yè)
課程設(shè)計(jì)案例-機(jī)票預(yù)訂信息系統(tǒng)_第2頁(yè)
課程設(shè)計(jì)案例-機(jī)票預(yù)訂信息系統(tǒng)_第3頁(yè)
課程設(shè)計(jì)案例-機(jī)票預(yù)訂信息系統(tǒng)_第4頁(yè)
課程設(shè)計(jì)案例-機(jī)票預(yù)訂信息系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)課程設(shè)計(jì)院別:信息科學(xué)與電氣工程學(xué)院班級(jí):計(jì)算181姓名:XXX學(xué)號(hào):XXXXXXX指導(dǎo)教師:XXX設(shè)計(jì)地點(diǎn):線上進(jìn)行時(shí)間:2020年6月8日至2020年6月19日課程設(shè)計(jì)任務(wù)書(shū)題目機(jī)票預(yù)定信息系統(tǒng)系(部)信息科學(xué)與電氣工程學(xué)院專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)計(jì)算181學(xué)生姓名XXX學(xué)號(hào)XXXXXXXX6月8日至6月19日共2周指導(dǎo)教師(簽字)XXX院長(zhǎng)(簽字)2019年6月7日一、設(shè)計(jì)內(nèi)容及要求通過(guò)本次課程設(shè)計(jì)讓學(xué)生能夠綜合運(yùn)用所學(xué)的關(guān)系數(shù)據(jù)庫(kù)原理知識(shí)解決并能設(shè)計(jì)一個(gè)實(shí)際問(wèn)題,進(jìn)一步掌握數(shù)據(jù)庫(kù)原理的相關(guān)理論和數(shù)據(jù)庫(kù)的設(shè)計(jì)實(shí)現(xiàn)過(guò)程,進(jìn)一步提高學(xué)生的分析問(wèn)題和解決問(wèn)題的能力以及學(xué)生的動(dòng)手能力。要求:1.對(duì)各個(gè)系統(tǒng)進(jìn)行系統(tǒng)功能需求分析2.數(shù)據(jù)庫(kù)設(shè)計(jì)分析階段,進(jìn)行詳細(xì)的數(shù)據(jù)庫(kù)需求分析,進(jìn)行概念數(shù)據(jù)庫(kù)的設(shè)計(jì),畫(huà)出數(shù)據(jù)庫(kù)的E-R圖(局部和整體E-R圖)3.設(shè)計(jì)出詳細(xì)的邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu),將各個(gè)實(shí)體和聯(lián)系轉(zhuǎn)化為相應(yīng)的二維表即關(guān)系模式,指定各個(gè)關(guān)系的主關(guān)鍵字和外部關(guān)鍵字,并對(duì)各個(gè)關(guān)系的約束加以限定4.通過(guò)企業(yè)管理器或是查詢(xún)分析器實(shí)現(xiàn)各個(gè)二維關(guān)系(建議最好用SQL代碼實(shí)現(xiàn)),要求建立相關(guān)的索引5.根據(jù)系統(tǒng)功能需求設(shè)計(jì)相應(yīng)的查詢(xún)視圖6.要求根據(jù)系統(tǒng)功能需求建立存儲(chǔ)過(guò)程7.根據(jù)功能需求建立相應(yīng)的觸發(fā)器以保證數(shù)據(jù)的一致性8.通過(guò)建立用戶(hù)和權(quán)限分配實(shí)現(xiàn)數(shù)據(jù)庫(kù)一定的安全性,考慮數(shù)據(jù)庫(kù)的備份與恢復(fù)(此內(nèi)容選作)二、設(shè)計(jì)原始資料1、《數(shù)據(jù)庫(kù)原理與應(yīng)用》2、課程設(shè)計(jì)題目:機(jī)票預(yù)定信息系統(tǒng)、長(zhǎng)途汽車(chē)信息管理系統(tǒng)、人事信息管理系統(tǒng)、超市會(huì)員管理系統(tǒng)、客房管理系統(tǒng)、藥品存銷(xiāo)信息管理系統(tǒng)、學(xué)生選課管理信息系統(tǒng)、學(xué)生成績(jī)管理系統(tǒng)、網(wǎng)上書(shū)店管理信息、.教室管理信息系統(tǒng)、職工考勤管理信息系統(tǒng)、個(gè)人信息管理系統(tǒng)、辦公室日常管理信息系統(tǒng)、轎車(chē)銷(xiāo)售信息管理系統(tǒng)等。題目具體內(nèi)容及要求見(jiàn)數(shù)據(jù)庫(kù)課程設(shè)計(jì)題目,鼓勵(lì)自選題目。三、設(shè)計(jì)完成后提交的文件和圖表1.計(jì)算說(shuō)明書(shū)部分2.圖紙部分:課程設(shè)計(jì)報(bào)告格式(附后):封面、題目、時(shí)間地點(diǎn)、目的及要求、內(nèi)容、詳細(xì)的步驟和代碼編寫(xiě)過(guò)程、總結(jié)。設(shè)計(jì)報(bào)告格式:設(shè)計(jì)題目設(shè)計(jì)時(shí)間、地點(diǎn)系統(tǒng)需求分析數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn)系統(tǒng)功能模塊實(shí)現(xiàn)設(shè)計(jì)總結(jié)(分析設(shè)計(jì)的得與失)心得體會(huì)封面格式如下(一定要有封面):四、進(jìn)程安排教學(xué)內(nèi)容學(xué)時(shí)地點(diǎn)備注分配任務(wù)與分組1天線上進(jìn)行系統(tǒng)功能需求分析1天線上進(jìn)行數(shù)據(jù)庫(kù)需求分析1天線上進(jìn)行邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)2天線上進(jìn)行查詢(xún)視圖、存儲(chǔ)過(guò)程、觸發(fā)器1天線上進(jìn)行編程2天線上進(jìn)行程序測(cè)試和成果驗(yàn)收2天線上進(jìn)行五、主要參考資料1.《數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用》沈祥玖張?jiān)乐袊?guó)水利水電出版社20162.《SQLServer數(shù)據(jù)庫(kù)配置與管理指南》劉奎

清華大學(xué)出版社20103.《SQL與關(guān)系數(shù)據(jù)庫(kù)理論》周成興清華大學(xué)出版社2010信息科學(xué)與電氣工程學(xué)院課程設(shè)計(jì)成績(jī)?cè)u(píng)定用表平時(shí)成績(jī)(30%)答辯成績(jī)(50%)報(bào)告成績(jī)(20%)總成績(jī)注:本表可根據(jù)實(shí)際情況修改。

目錄TOC\o"1-2"\h\u17444摘要 6215961系統(tǒng)需求分析 883301.1系統(tǒng)整體需求 8276271.2系統(tǒng)功能模塊分析 8181031.3功能模塊分析 8229062數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 11271182.1各個(gè)部分?jǐn)?shù)據(jù)庫(kù)實(shí)體圖 1119982.2數(shù)據(jù)庫(kù)E-R圖 1210633數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 135463.1數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì) 1341733.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì) 14271124數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn) 15152224.1數(shù)據(jù)庫(kù)表實(shí)現(xiàn) 15111674.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì) 17278685功能模塊實(shí)現(xiàn) 20295475.1數(shù)據(jù)庫(kù)連接實(shí)現(xiàn) 20170565.2功能實(shí)現(xiàn) 20100586總結(jié) 2520892參考文獻(xiàn) 25摘要航空業(yè)作為運(yùn)輸行業(yè)的基礎(chǔ),要提高我國(guó)運(yùn)輸行業(yè)的整體水平,必須從基礎(chǔ)抓起。訂票系統(tǒng)是航空業(yè)從事生產(chǎn)和管理的基層單位,加強(qiáng)訂票系統(tǒng)是航空業(yè)基礎(chǔ)地位的關(guān)鍵,也是保障航空業(yè)業(yè)可持續(xù)發(fā)展的重要基石。隨著現(xiàn)在航空運(yùn)輸業(yè)的發(fā)展,機(jī)票預(yù)訂系統(tǒng)也成為了航空運(yùn)輸業(yè)的軟件副產(chǎn)品,目前的管理系統(tǒng)都是與數(shù)據(jù)庫(kù)關(guān)聯(lián),故數(shù)據(jù)庫(kù)的管理也成為很熱門(mén)的研究對(duì)象。此項(xiàng)目是以數(shù)據(jù)庫(kù)SQLSEVER為支撐,java(eclipse)為平臺(tái)而開(kāi)發(fā)的。在本文編寫(xiě)程序系統(tǒng)時(shí),可將分為兩大部分,一部分是在SQLSever中創(chuàng)建視圖,觸發(fā)器,存儲(chǔ)過(guò)程以方便在JAVA設(shè)計(jì)中的使用?;颈恚汉桨啾恚ê桨嗵?hào),航班名稱(chēng),航班等級(jí),起飛時(shí)間,飛行時(shí)間,出發(fā)地,目的地)機(jī)票表(航班號(hào),機(jī)票價(jià)格,機(jī)票折扣,機(jī)票數(shù)量,客戶(hù)經(jīng)理)訂票表(編號(hào),航班號(hào),訂單號(hào),用戶(hù)名,證件號(hào))用戶(hù)信息表(登錄名,用戶(hù)密碼,用戶(hù)姓名,證件號(hào),性別,手機(jī)號(hào),地址,郵箱)通過(guò)用戶(hù)模塊和管理員模塊對(duì)模塊信息進(jìn)行增刪改查。關(guān)鍵字:Java,SQLSever,存儲(chǔ)過(guò)程,觸發(fā)器

1系統(tǒng)需求分析1.1系統(tǒng)整體需求簡(jiǎn)單描述整個(gè)系統(tǒng)的需求。航班基本信息的錄入,包括航班的編號(hào)、飛機(jī)名稱(chēng)、機(jī)艙等級(jí)等。機(jī)票信息,包括票價(jià)、折扣、當(dāng)前預(yù)售狀態(tài)及經(jīng)手業(yè)務(wù)員等??蛻?hù)基本信息,包括姓名、聯(lián)系方式、證件及號(hào)碼、付款情況等。按照一定條件查詢(xún)、統(tǒng)計(jì)符合條件的航班、機(jī)票等;對(duì)結(jié)果輸出。1.2系統(tǒng)功能模塊分析描述本次設(shè)計(jì)的功能模塊分析,簡(jiǎn)要描述即可。要包括功能模塊圖,及對(duì)每個(gè)模塊的簡(jiǎn)要描述。具體由誰(shuí)負(fù)責(zé)等信息。系統(tǒng)選擇的具體數(shù)據(jù)庫(kù)及開(kāi)發(fā)語(yǔ)言。用戶(hù)登錄模塊:驗(yàn)證用戶(hù)賬號(hào)密碼進(jìn)行軟件的登錄驗(yàn)證;用戶(hù)模塊:用戶(hù)對(duì)某個(gè)航班進(jìn)行查詢(xún),預(yù)定機(jī)票,個(gè)人信息查詢(xún),退訂機(jī)票;管理員模式:管理員對(duì)航班信息進(jìn)行增刪改查;負(fù)責(zé):個(gè)人單獨(dú)完成整個(gè)項(xiàng)目數(shù)據(jù)庫(kù):SQLSever開(kāi)發(fā)語(yǔ)言:JAVA1.3功能模塊分析描述本人負(fù)責(zé)的功能模塊的分析,可以將本人負(fù)責(zé)的模塊的具體功能,如增、刪、改、查、統(tǒng)計(jì)等進(jìn)行具體描述。要求包括細(xì)分的功能模塊圖。對(duì)子功能進(jìn)行簡(jiǎn)要描述。用戶(hù)登錄模塊:該模塊主要是對(duì)用戶(hù)表進(jìn)行操作,對(duì)用戶(hù)信息表userinfo表進(jìn)行增刪改查操作,以及登錄界面的實(shí)現(xiàn)。當(dāng)前登錄用戶(hù)信息的查詢(xún)也在此表。圖1-3-1用戶(hù)訂票模塊:該模塊包含F(xiàn)ly和Flyinfo兩個(gè)表,對(duì)于幾排哦信息客戶(hù)可以進(jìn)行查詢(xún)及其購(gòu)買(mǎi)操作,購(gòu)買(mǎi)成功是生成了訂單信息,需要插入訂單信息表(order_flight)管理員能夠?qū)桨嘈畔⑦M(jìn)行增刪改查,用戶(hù)能夠進(jìn)行查詢(xún)以及預(yù)定生成個(gè)人信息。管理員管理模塊:該模塊是對(duì)航班信息以及用戶(hù)信息進(jìn)行增刪改查操作,圖1-3-2圖1-3-32數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)2.1各個(gè)部分?jǐn)?shù)據(jù)庫(kù)實(shí)體圖畫(huà)圖并簡(jiǎn)單描述XXX實(shí)體,包括基本屬性,特殊的數(shù)據(jù)要求(約束)。如果有多個(gè)實(shí)體,可以分節(jié)描述,每個(gè)實(shí)體1小節(jié)。1.航班信息實(shí)體圖2.機(jī)票信息實(shí)體圖3.用戶(hù)信息實(shí)體圖:2.2數(shù)據(jù)庫(kù)E-R圖畫(huà)圖并簡(jiǎn)單描述數(shù)據(jù)庫(kù)的E-R圖。描述清楚實(shí)體間的聯(lián)系及聯(lián)系的類(lèi)型。3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)畫(huà)表并簡(jiǎn)單描述表的結(jié)構(gòu),包括表名、數(shù)據(jù)類(lèi)型、長(zhǎng)度、是否非空、約束(主鍵、默認(rèn)值、檢查約束)、備注(描述列表示的含義)。其他項(xiàng)目可以根據(jù)自己的設(shè)計(jì)適當(dāng)增刪。航班信息:列名表名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空約束備注航班號(hào)flight_idInt否主鍵航班名稱(chēng)flight_namevarchar20否機(jī)艙等級(jí)flight_gradeInt否起飛時(shí)間takeoff_timedatetime否飛行時(shí)長(zhǎng)flytimeInt否起始地點(diǎn)start_placevarchar20否目的地點(diǎn)start_placevarchar20否機(jī)票信息:航班號(hào)flight_idInt否主鍵,外鍵機(jī)票價(jià)格flight_priceInt否機(jī)票折扣flight_discountInt否機(jī)票數(shù)量flight_ticketInt否客戶(hù)經(jīng)理flight_sellnamevarchar20否客戶(hù)預(yù)定信息:編號(hào)idInt否主鍵航班號(hào)flight_idInt否外鍵訂單編號(hào)orderidnchar10否用戶(hù)姓名usernamevarchar20否證件號(hào)碼useridentityvarchar18否外鍵用戶(hù)信息:用戶(hù)名loginnamenchar20否密碼loginpsdnchar20否姓名Usernamenchar10否證件號(hào)UseridentityVarchar18否主鍵Check18位性別Sexnchar10否男,女手機(jī)號(hào)Phonenchar20否Check11位地址Useraddressnchar20否郵箱Emailnchar20否3.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì)描述數(shù)據(jù)庫(kù)中包含的視圖、存儲(chǔ)過(guò)程、觸發(fā)器的結(jié)構(gòu)或功能,在哪些模塊中使用等。視圖:orderquery視圖:在用戶(hù)進(jìn)行查詢(xún)預(yù)定信息時(shí)使用,把訂單信息和用戶(hù)信息聯(lián)立成為虛擬表來(lái)進(jìn)行臨時(shí)表的信息查看。在用戶(hù)管理模Info視圖:在管理員進(jìn)行對(duì)航班信息的查詢(xún)是使用,把航班信息和機(jī)票信息聯(lián)立成為虛擬表進(jìn)行臨時(shí)表的信息查看。觸發(fā)器:ticket觸發(fā)器,某機(jī)票被購(gòu)買(mǎi)后實(shí)現(xiàn)機(jī)票數(shù)量減一,觸發(fā)這個(gè)觸發(fā)器的條件是order_flyticket插入了數(shù)據(jù)建立名為sexupins的觸發(fā)器為了更新,觸發(fā)這個(gè)觸發(fā)器的條件是在這個(gè)用戶(hù)信息表中的sex屬性只能是男或女存儲(chǔ)過(guò)程:1.vuserinfo的存儲(chǔ)過(guò)程,功能是通過(guò)loginname查找userinfo表中用戶(hù)的所有信息2.建立名為“searchorder”的存儲(chǔ)過(guò)程,功能是通過(guò)loginname查找視圖orderquery中用戶(hù)的所有預(yù)訂票信息4數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn)4.1數(shù)據(jù)庫(kù)表實(shí)現(xiàn)給出數(shù)據(jù)庫(kù)表的創(chuàng)建語(yǔ)句。USE[AirView]GO/******Object:Table[dbo].[Fly]ScriptDate:2020/6/1910:51:55******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[Fly]( [flight_id][int]NOTNULL, [flight_name][varchar](20)NOTNULL, [flight_grade][int]NOTNULL, [takeoff_time][datetime]NOTNULL, [flytime][int]NOTNULL, [start_place][varchar](20)NOTNULL, [end_place][varchar](20)NOTNULL,CONSTRAINT[PK_Fly]PRIMARYKEYCLUSTERED( [flight_id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOUSE[AirView]GO/******Object:Table[dbo].[FlyInfo]ScriptDate:2020/6/1910:52:10******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[FlyInfo]( [flight_id][int]NOTNULL, [flight_price][int]NOTNULL, [flight_discount][int]NOTNULL, [flight_ticket][int]NOTNULL, [flight_sellname][varchar](20)NOTNULL,CONSTRAINT[PK_FlyInfo]PRIMARYKEYCLUSTERED( [flight_id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOALTERTABLE[dbo].[FlyInfo]ADDCONSTRAINT[DF_FlyInfo_flight_sellname]DEFAULT('陳肇哲')FOR[flight_sellname]GOUSE[AirView]GO/******Object:Table[dbo].[order_flyticket]ScriptDate:2020/6/1910:52:24******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[order_flyticket]( [id][int]IDENTITY(1,1)NOTNULL, [flight_id][int]NOTNULL, [orderid][nchar](10)NOTNULL, [username][varchar](20)NOTNULL, [useridentity][varchar](18)NOTNULL,CONSTRAINT[PK_order_flyticket_1]PRIMARYKEYCLUSTERED( [id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOUSE[AirView]GO/******Object:Table[dbo].[userinfo]ScriptDate:2020/6/1910:52:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[userinfo]( [loginname][nchar](20)NOTNULL, [loginpsd][nchar](20)NOTNULL, [Username][nchar](10)NOTNULL, [Useridentity][varchar](18)NOTNULL, [Sex][nchar](10)NOTNULL, [Phone][nchar](20)NOTNULL, [Useraddress][nchar](20)NOTNULL, [Email][nchar](20)NOTNULL,CONSTRAINT[PK_userinfo]PRIMARYKEYCLUSTERED( [Useridentity]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO4.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì)描述數(shù)據(jù)庫(kù)中包含的視圖、存儲(chǔ)過(guò)程、觸發(fā)器的實(shí)現(xiàn)語(yǔ)句。存儲(chǔ)過(guò)程:建立名為’vuserinfo’的存儲(chǔ)過(guò)程,功能是通過(guò)loginname查找userinfo表中用戶(hù)的所有信息gocreateprocedurevuserinfo(@bloginnamenchar(20))asbegindeclare@loginname nchar(20),@loginpsd nchar(20),@Username nchar(10),@Useridentity varchar(18) ,@Sex nchar(10), @Phone nchar(20) ,@Useraddress nchar(20) ,@Email nchar(20)declaremycurcursorforselect*fromuserinfowhereuserinfo.loginname=@bloginnameopenmycurfetchmycurinto@loginname,@loginpsd,@Username,@Useridentity,@Sex,@Phone,@Useraddress,@Emailwhile(@@FETCH_STATUS=0)beginselect@loginname,@loginpsd,@Username,@Useridentity,@Sex,@Phone,@Useraddress,@Emailendclosemycurdeallocatemycurendexecvuserinfo'user2'建立名為“searchorder”的存儲(chǔ)過(guò)程,功能是通過(guò)loginname查找視圖orderquery中用戶(hù)的所有預(yù)訂票信息gocreateproceduresearchorder(@bloginnamenvarchar(20))asbegindeclare@flight_namevarchar(20),@flight_idint,@flight_gradeint,@takeoff_timedatetime,@start_placevarchar(20),@end_placevarchar(20) ,@usernamevarchar(20),@Useridentityvarchar(18),@flytimeintdeclaremycurcursorforselect*fromorderquerywhereorderquery.username=@bloginnameopenmycurfetchmycurinto@flight_name,@flight_id,@flight_grade,@takeoff_time,@flytime,@start_place,@end_place ,@username,@Useridentitywhile(@@fetch_status=0)beginselect@flight_name,@flight_id,@flight_grade,@takeoff_time,@flytime,@start_place,@end_place ,@username,@Useridentityfetchmycurinto@flight_name,@flight_id,@flight_grade,@takeoff_time,@flytime,@start_place,@end_place ,@username,@Useridentityendclosemycurdeallocatemycurendexecsearchorder'user1'觸發(fā)器:1.建立名為’ticket’的觸發(fā)器,某機(jī)票被購(gòu)買(mǎi)后實(shí)現(xiàn)機(jī)票數(shù)量減一,觸發(fā)這個(gè)觸發(fā)器的條件是order_flyticket插入了數(shù)據(jù)createtrigger

ticketonorder_flyticketafterinsertasupdateFlyInfosetflight_ticket=flight_ticket-1whereFlyInfo.flight_id=flight_id2.建立名為’sexupins’的觸發(fā)器為了更新,觸發(fā)這個(gè)觸發(fā)器的條件是在這個(gè)用戶(hù)信息表中的sex屬性只能是男或女createtriggersexupinsonuserinfoforinsert,updateasifexists(select*frominsertedwhereSexnotin('男','女'))rollback視圖建立名為“info”的視圖為了合并機(jī)票信息CreateviewinfoasSelectflight_discount,flight_gradeFromFLy,FlyInfoselect*frominfo建立名為“orderquery”的視圖為了合并機(jī)票信息CREATEVIEW[dbo].[orderquery]ASSELECTdbo.Fly.flight_name,dbo.Fly.flight_id,dbo.Fly.flight_grade,dbo.Fly.takeoff_time,dbo.Fly.flytime,dbo.Fly.start_place,dbo.Fly.end_place,dbo.order_flyticket.username,dbo.order_flyticket.useridentityFROMbo.FlyINNERJOINdbo.order_flyticketONdbo.Fly.flight_id=dbo.order_flyticket.flight_idGO5功能模塊實(shí)現(xiàn)5.1數(shù)據(jù)庫(kù)連接實(shí)現(xiàn)publicstaticConnectionconnectdata(){//數(shù)據(jù)庫(kù)的連接 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione1){ //TODO自動(dòng)生成的catch塊 e1.printStackTrace(); } Stringurl="jdbc:sqlserver://:1433;databaseName=AirView"; try{ conn=DriverManager.getConnection(url,"sa","Czz123456"); }catch(SQLExceptione){ //TODO自動(dòng)生成的catch塊 e.printStackTrace(); System.out.println("數(shù)據(jù)庫(kù)連接失敗\n"+e.toString()); } System.out.println("數(shù)據(jù)庫(kù)連接成功"); returnconn; } publicstaticResultSetfindForResultSet(Stringsql){//執(zhí)行sql語(yǔ)句函數(shù) if(conn==null) returnnull; longtime=System.currentTimeMillis(); ResultSetrs=null;// try{ Statementstmt=null;//Statement對(duì)象用于將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)中。 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql);//執(zhí)行語(yǔ)句 second=((System.currentTimeMillis()-time)/1000d)+""; System.out.println("DBTIme:"+second); }catch(Exceptione){ e.printStackTrace(); } returnrs; }5.2功能實(shí)現(xiàn)根據(jù)1.3節(jié)的功能模塊分析,分節(jié)描述每個(gè)子功能的具體實(shí)現(xiàn)。語(yǔ)言描述實(shí)現(xiàn)過(guò)程,并給出關(guān)鍵代碼。對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn):packagecom.dao;importjava.sql.*;publicclassDatabaseTry{ staticStringsecond; staticConnectionconn; publicDatabaseTry(){ connectdata(); } publicstaticbooleancheckLogin(StringuserStr,StringpassStr)//登錄檢查 throwsSQLException{ ResultSetrs=findForResultSet("select*fromuserinfowhereloginname='" +userStr+"'andloginpsd='"+passStr+"'"); if(rs==null) returnfalse; returnrs.next();//rs光標(biāo)剛開(kāi)始在第一行之前如果新的當(dāng)前行有效,則返回true;如果不存在下一行,則返回false } publicstaticResultSetuserinfo_t(Stringusername)throwsSQLException{ ResultSetrs=findForResultSet("select*fromuserinfo"+ "whereloginname='"+username+"'"); returnrs; } publicstaticResultSetFlight_Info(Stringshartplace,Stringendplace,intgrade)throwsSQLException{ ResultSetrs=findForResultSet("select*fromFly,FlyInfo" +"whereFly.flight_id=FlyInfo.flight_idandFly.flight_grade="+grade+ "andFly.start_place='"+shartplace+"'andFly.end_place='"+endplace+"'"); returnrs; } publicstaticResultSetList_Place_Start()throwsSQLException{ ResultSetrs=findForResultSet("selectdistinctstart_placefromFly,FlyInfowhereFly.flight_id=FlyInfo.flight_id"); returnrs; } publicstaticResultSetList_Place_End()throwsSQLException{ ResultSetrs=findForResultSet("selectdistinctend_placefromFly,FlyInfowhereFly.flight_id=FlyInfo.flight_id"); returnrs; } publicstaticResultSetList_(Stringstart,Stringend,intgrade,Stringtime)throwsSQLException{ ResultSetrs=findForResultSet("selectflight_name,takeoff_time,flytime,flight_price,flight_discount,flight_ticket,flight_sellname," +"FlyInfo.flight_idfromFly,FlyInfowhereFly.flight_id=FlyInfo.flight_idandstart_place='"+ start+"'andend_place='"+end+"'andflight_grade="+grade+"andtakeoff_time>='"+time+"'"); returnrs; } publicstaticvoidUserDpInfo(Stringid_f,Stringname,Stringident,inti){ if(conn==null) return; try{ Statementstmt=null;//Statement對(duì)象用于將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)中。 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); stmt.executeUpdate("insertintoorder_flyticket(flight_id,username,useridentity,orderid)values("+id_f+",'"+name+"','"+ident+"','"+i+"')");//執(zhí)行語(yǔ)句 }catch(Exceptione){ e.printStackTrace(); } } publicstaticResultSetsearchorderinfo(Stringusername){ ResultSetrs=findForResultSet("execsearchorder'"+username+"'"); returnrs; } publicstaticResultSetinfo(){ ResultSetrs=findForResultSet("select*frominfo"); returnrs; } publicstaticvoidinfo(Stringflight_id,Stringflight_name,Stringflight_grade,Stringtakeoff_time,Stringflytime,Stringstart_place,Stringend_place,Stringflight_price,Stringflight_discount,Stringflight_ticket,Stringflight_sellname){ if(conn==null) return; try{ Statementstmt=null;//Statement對(duì)象用于將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)中。 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); stmt.executeUpdate("insertintoFly(flight_id,flight_name,flight_grade,takeoff_time,flytime,start_place,end_place)" +"values("+flight_id+",'"+flight_name+"',"+flight_grade+",'"+takeoff_time+"','"+flytime+"', '"+start_place+"', '"+end_place+"')");//執(zhí)行語(yǔ)句 stmt.executeUpdate("insertintoFlyInfo(flight_id,flight_price,flight_discount,flight_ticket,flight_sellname)" +"values("+flight_id+","+flight_price+","+flight_discount+","+flight_ticket+",'"+flight_sellname+"')");//執(zhí)行語(yǔ)句 }catch(Exceptione){ e.printStackTrace(); }} publicstaticvoidinfo_up(Stringflight_id,Stringflight_name,Stringflight_grade,Stringtakeoff_time,Stringflytime,Stringstart_place,S

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論