![數(shù)據(jù)庫(kù)課程設(shè)計(jì)-機(jī)票預(yù)訂系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/37e528d7-7699-4176-bbde-74e2ed580e87/37e528d7-7699-4176-bbde-74e2ed580e871.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)-機(jī)票預(yù)訂系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/37e528d7-7699-4176-bbde-74e2ed580e87/37e528d7-7699-4176-bbde-74e2ed580e872.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)-機(jī)票預(yù)訂系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/37e528d7-7699-4176-bbde-74e2ed580e87/37e528d7-7699-4176-bbde-74e2ed580e873.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)-機(jī)票預(yù)訂系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/37e528d7-7699-4176-bbde-74e2ed580e87/37e528d7-7699-4176-bbde-74e2ed580e874.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)-機(jī)票預(yù)訂系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/37e528d7-7699-4176-bbde-74e2ed580e87/37e528d7-7699-4176-bbde-74e2ed580e875.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、陶由2孽優(yōu)數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)機(jī)票預(yù)訂管理系統(tǒng)學(xué) 院:計(jì)算機(jī)與信息科學(xué)學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí):計(jì)科1303姓名學(xué)號(hào): XXX 13203403XX指導(dǎo)教師:高金華職稱講師完成時(shí)間:2015年12月數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)11 系統(tǒng)概述3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1 需求分析4.2.2 概念結(jié)構(gòu)設(shè)計(jì)7.2.3 邏輯結(jié)構(gòu)設(shè)計(jì)1.0.2.4 物理結(jié)構(gòu)設(shè)計(jì) 1.1.2.5 設(shè)計(jì)小結(jié)1.5.3 應(yīng)用程序設(shè)計(jì)1.6.3.1 需求分析1.6.3.2 概要設(shè)計(jì)1.9.3.3 詳細(xì)設(shè)計(jì)2.0.3.4 系統(tǒng)測(cè)試3.2.3.5 設(shè)計(jì)小結(jié)3.8.# / 381 系統(tǒng)概述隨著全球進(jìn)入信息化時(shí)代,航空公司為了適應(yīng)當(dāng)前越
2、來(lái)越激烈的競(jìng)爭(zhēng),增強(qiáng)公司的信息化程度,提高公司的售票管理的效率,就建立起了相應(yīng)的航空預(yù)訂票系統(tǒng),成功實(shí)現(xiàn)提高了航空系統(tǒng)的售票效率和管理水平。在計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫(kù)和先進(jìn)的開發(fā)平臺(tái)上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的機(jī)票預(yù)定系統(tǒng),實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化的計(jì)算機(jī)系統(tǒng),為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息。根據(jù)可行性研究的結(jié)果和客戶的要求,分析現(xiàn)有情況及問題。隨著社會(huì)發(fā)展的不斷地進(jìn)步,人民消費(fèi)水平的不斷地提高,致使民航事業(yè)不斷壯大, 乘坐民航的消費(fèi)者越來(lái)越多,因此機(jī)票的預(yù)定也越顯重要,航空公司為方便客戶出行,需開
3、發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。根據(jù)預(yù)定機(jī)票的客戶信息,包括姓名、性別、身份證號(hào)碼、出行時(shí)間、出行目的地等,系統(tǒng)經(jīng)過查詢航空公司內(nèi)的航班數(shù)據(jù)服務(wù)器后,為旅客安排航班3 / 382數(shù)據(jù)庫(kù)設(shè)計(jì)2.1 需求分析2.1.1 數(shù)據(jù)流圖7 / 382.1.2數(shù)據(jù)詞典表2-1 plane飛機(jī)信息表表中列名數(shù)據(jù)類型可否為空說(shuō)明flightNumvarchar2primary key飛機(jī)編號(hào)seatsnumbernot null座位數(shù)表2-2 flight航班信息表表中列名數(shù)據(jù)類型可否為空說(shuō)明flightNumvarchar2primary key航班編號(hào)planeNumvarchar2not null飛機(jī)編號(hào)startP
4、ointvarchar2not null出發(fā)地detinationvarchar2not null目的地:startTimevarchar2not null起飛時(shí)間endTimevarchar2not null到達(dá)時(shí)間表2-3 ticket 機(jī)票表表中列名數(shù)據(jù)類型可否為空說(shuō)明flightNumvarchar2primary key航班號(hào) 一gradevarchar2not null機(jī)艙等級(jí)seatNumvarchar2not null座位號(hào)ticketPricenumbernot null機(jī)票價(jià)格presellvarchar2not null預(yù)售狀態(tài)表2-4 passenger 旅客表表中列名
5、數(shù)據(jù)類型可否為空說(shuō)明namevarchar2primary key旅客名sexvarchar2not null旅客性別idNumvarchar2not null身份證phoneNumvarchar2not null手機(jī)號(hào)passwordvarchar2not null密碼表2-5 buy購(gòu)買表表中列名數(shù)據(jù)類型可否為空說(shuō)明namevarchar2foreign key旅客名flightNumvarchar2foreign key航班號(hào)greadvarchar2not null機(jī)艙等級(jí)seatNumvarchar2not null座位號(hào)paymoneynumbernot null機(jī)票價(jià)格buyNu
6、mvarchar2not null購(gòu)買數(shù)量表2-6 manager管理員表表中列名數(shù)據(jù)類型可否為空說(shuō)明mnamevarchar2not null unique管理員編號(hào) 一mpwdvarchar2not null管理員姓名2.1.3 加工說(shuō)明我們的系統(tǒng)需要六個(gè)實(shí)體:(1)飛機(jī)實(shí)體實(shí)體名:plane角色:關(guān)于飛機(jī)的信息屬性:飛機(jī)編號(hào),座位數(shù)主鍵:飛機(jī)編號(hào)(2)航班實(shí)體實(shí)體名:flight角色:航班信息屬性:航班編號(hào),出發(fā)地,目的地,起飛時(shí)間,到達(dá)時(shí)間主鍵:航班編號(hào)(3)機(jī)票實(shí)體實(shí)體名:ticket角色:機(jī)票信息屬性:航班號(hào),機(jī)艙等級(jí),座位號(hào),機(jī)票價(jià)格,余票數(shù)主鍵:座位號(hào)( 4)旅客實(shí)體實(shí)體名:p
7、assenger角色:旅客信息屬性:旅客名,旅客性別,身份證,手機(jī)號(hào),密碼主鍵:旅客名( 5)機(jī)票購(gòu)買實(shí)體實(shí)體名: buy角色:旅客購(gòu)買機(jī)票后的信息屬性:旅客名,航班號(hào),機(jī)艙等級(jí),座位號(hào),機(jī)票價(jià)格,購(gòu)買數(shù)量( 6)管理員實(shí)體實(shí)體名:manager角色:管理員信息屬性:管理員名,密碼2.2 概念結(jié)構(gòu)設(shè)計(jì)2.2.1 E-R 圖根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R 圖。(1)航班實(shí)體屬性圖,航班的信息由航班號(hào)、飛機(jī)編號(hào)、出發(fā)地、目的地、起飛時(shí)間、到達(dá)時(shí)間等屬性組成如圖所示目的地 J (起飛時(shí)間出發(fā)地/(到達(dá)時(shí)間圖(1)航班信息實(shí)體屬性圖(2)飛機(jī)是實(shí)體屬性圖,飛機(jī)信息由飛機(jī)編號(hào)和座位數(shù)屬性
8、組成如圖所示飛機(jī)編號(hào))(座位數(shù)- -<r飛機(jī)信息圖(2)飛機(jī)信息實(shí)體屬性圖(3)管理員實(shí)體屬性圖,管理員信息由姓名和登錄密碼屬性組成如圖所示姓名登陸密碼管理員信息圖(3)管理員信息實(shí)體屬性圖(4)機(jī)票實(shí)體屬性圖,機(jī)票信息有:航班號(hào)、機(jī)艙等級(jí)、座位號(hào)、票價(jià)、預(yù) 售狀態(tài)等屬性如圖所示。航班號(hào)機(jī)票信息預(yù)售狀態(tài)圖(4)機(jī)票信息實(shí)體屬性圖(5)旅客屬性圖,旅客信息有:身份證號(hào)、姓名、性別、聯(lián)系方式、密碼等屬性如圖所示姓名身份證號(hào)旅客信息17 / 38圖(5)旅客信息實(shí)體屬性圖(6)訂單屬性圖,訂單信息有:姓名、航班號(hào)、座位號(hào)、機(jī)艙等級(jí)、金額、訂 單數(shù)等屬性如圖所示。圖(6)訂單信息實(shí)體屬性圖根據(jù)屬
9、性圖和需求分析,可得到總 E-R圖,如圖所示圖(7)總的E-R圖2.3 邏輯結(jié)構(gòu)設(shè)計(jì)2.3.1 關(guān)系模式將總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型。(主鍵用下劃線標(biāo)出)飛機(jī)(飛機(jī)編號(hào),座位數(shù))航班(航班編號(hào),飛機(jī)編號(hào),出發(fā)地,目的地,起飛時(shí)間,到達(dá)時(shí)間)管理員(管理員姓名,密碼)機(jī)票(航班編號(hào),機(jī)艙等級(jí),座位號(hào),票價(jià),當(dāng)前預(yù)售狀態(tài))旅客(身份證號(hào)、姓名,性別,密碼,聯(lián)系電話)購(gòu)買(姓名、航班號(hào)、座位號(hào)、機(jī)艙等級(jí)、實(shí)付款,數(shù)量)2.4 物理結(jié)構(gòu)設(shè)計(jì)根據(jù)總體結(jié)構(gòu)圖設(shè)計(jì)機(jī)票預(yù)定系統(tǒng)基本表結(jié)構(gòu),其相應(yīng)標(biāo)的定義如下: 表1飛機(jī)信息類型飛機(jī)編號(hào)varchar210Y座位數(shù)numberN總座位表2航班信息類型長(zhǎng)度
10、是否非空主關(guān)鍵字航班號(hào)varchar210Y飛機(jī)編號(hào)varchar210N機(jī)艙等級(jí)varchar210N起飛地varchar210N目的地varchar210N起飛時(shí)間varchar2年月日/時(shí)分到達(dá)時(shí)間varchar2年月日/時(shí)分表3管理員信息類型長(zhǎng)度是否非空主關(guān)鍵字管理員姓名char10Y登陸密碼char10N表4機(jī)票信息類型長(zhǎng)度是否非空主關(guān)鍵字航班號(hào)char10N機(jī)艙等級(jí)char10N座位號(hào)char10Y票價(jià)float(2)N元當(dāng)前預(yù)售狀態(tài)char10NY/N5中文名稱類型長(zhǎng)度是否非空主關(guān)鍵字旅客姓名char10Y身份證號(hào)char10N性別char10N聯(lián)系方式char10N密碼char
11、15N表4-6購(gòu)買信息類型長(zhǎng)度旅客姓名char10Y座位號(hào)char10N航班號(hào)float(1)機(jī)艙等級(jí)float(2)NN實(shí)付款intNN購(gòu)買數(shù)量char10N數(shù)據(jù)庫(kù)實(shí)現(xiàn):-飛機(jī)信息表plane create table plane (flightNum varchar2 (10),-航班號(hào) seats number ( 8) not null -座位數(shù) );insertinto plane values ('航班 1' , 5);insertinto plane values ('航班2' , 5);insertinto plane values ('
12、航班3' , 5);insertinto plane values ('航班4' , 5);select * from plane;-航班表flightcreate table flight(flightNumvarchar2 (10) primary key ,-航班編pplaneNum varchar2 ( 10),-飛機(jī)編號(hào)startPointvarchar2(20) not null ,-出發(fā)地detinationvarchar2(10) not null ,-目的地startTimevarchar2 (20) not null ,-起飛時(shí)間endtime va
13、rchar2(20)not null-到達(dá)時(shí)間);-插入數(shù)據(jù)到航班表(flight) 中insert into flight values ('航班 1',長(zhǎng)沙','武漢','2015-12-29 0800' , '2015-12-29 10: 00');insertintoflightvalues(航班2,北京臺(tái)灣,2015-12-30 08:30' , '2015-12-29 11:00');insertintoflightvalues(航班3,北京上海2016-01-01 11:30'
14、 , '2016-01-115:00');insertintoflightvalues(航班4,廣州'杭 '2016-01-10 09:00' , '2016-01-02 10: 00');select * from flight;-航班表的flightNum作為飛機(jī)信息表flightNum 的外鍵alter table plane add constraintfk fnforeign key (flightNum) referencesflight(flightNum);-創(chuàng)建機(jī)票表ticket create table ticket
15、(flightNum varchar2 ( 10) not null ,-航班號(hào)grade varchar2 (10) not null ,-機(jī)艙等級(jí)seatNum varchar2 (10) primary key-座位號(hào)ticketPricefloat ( 2) not null ,-機(jī)票價(jià)格presellvarchar2 (10) not null-余票數(shù));-插入數(shù)據(jù)到機(jī)票表(ticket) 中insertintoticketvalues(航班1,頭等艙,1-01,500,1 );insertintoticketvalues(航班1,公務(wù)艙,1-02,400,1 );insertint
16、oticketvalues(航班1,公務(wù)艙,1-03,400,1 );insertintoticketvalues(航班1,經(jīng)濟(jì)艙,1-04,300,1 );insertintoticketvalues(航班1,經(jīng)濟(jì)艙,1-05,300,1 );insertintoticketvalues(航班2,頭等艙,2-01,500,1 );insertintoticketvalues(航班2,公務(wù)艙,2-02,400,1 );insertintoticketvalues(航班2,公務(wù)艙,2-03,400,1 );insertintoticketvalues(航班2,經(jīng)濟(jì)艙,2-04,300,1 );i
17、nsertintoticketvalues(航班2,經(jīng)濟(jì)艙,2-05,300,1 );insertintoticketvalues(航班3,頭等艙,3-01,500,1 );insertintoticketvalues(航班3,公務(wù)艙,3-02,400,1 );insertintoticketvalues(航班3,公務(wù)艙,3-03,400,1 );insertintoticketvalues(航班3,經(jīng)濟(jì)艙,3-04,300,1 );insertintoticketvalues(航班3,經(jīng)濟(jì)艙,3-05,300,1 );insertintoticketvalues(航班4,頭等艙,4-01,5
18、00,1 );insertintoticketvalues(航班4,公務(wù)艙,4-02,400,1 );insertintoticketvalues(航班4,公務(wù)艙,4-03,400,1 );insertintoticketvalues(航班4,經(jīng)濟(jì)艙,4-04,300,1 );insertintoticketvalues(航班4,經(jīng)濟(jì)艙,4-05,300,1 );select* from ticket;-航班表的flightNum作為機(jī)票表flightNum的外鍵alter table ticket add constraintfk tfnforeign key (flightNum)refe
19、rences flight(flightNum);-創(chuàng)建旅客表create table passenger(name varchar2 ( 10) primary key ,-旅客名sex varchar2 ( 10) not null ,-旅客性別idNum varchar2 (20) not null ,-身份證phoneNum varchar2 ( 15) not null ,-手機(jī)號(hào)password varchar2 ( 10) not null-密碼);-插入數(shù)據(jù)到旅客表(passenger) 中insertintopassengervalues('張三,男'1220
20、101','1316060001',zs');insertintopassengervalues(李四,男'1220102','1316060002',ls');insertintopassengervalues('王五,女'1220103','1316060003','ww');insertintopassengervalues('趙六,'男'1220104','1316060004',zl');select
21、* from passenger;-創(chuàng)建購(gòu)買表create table buy (name varchar2 ( 20),-旅客名flightNum varchar2 (10),-航班號(hào)gread varchar2(10) not null ,-機(jī)艙等級(jí)seatNum varchar2 (10) not null,-座位號(hào)paymoney float(2) not null ,-機(jī)票價(jià)格buyNum number(8) not null-購(gòu)買數(shù)量);-插入數(shù)據(jù)到購(gòu)買表(buy)中insertintobuyvalues(張三,航班1 ,公務(wù)艙,1-02,400 , 1);insertintobu
22、yvalues(李四,航班2',經(jīng)濟(jì)艙',3-01,400 , 1);insertintobuyvalues('王五,航班3 ,公務(wù)艙',3-05,270 , 1);insertintobuyvalues(趙六,航班4',經(jīng)濟(jì)艙',4-04,270 , 1);select * from buy;-旅客表的name作為購(gòu)買表name的外鍵alter table buy add constraint fk_bn foreign key (name) references passenger( name);-管理員表|createtablemanage
23、r(mnamevarchar2(20) notnull ,-管理員名mpwdvarchar2(10) notnull ,-管理員登錄密碼yuliuvarchar2(20);select* frommanager;insert into manager values ('李華','aaaaaa' , null );select * from manager where mname ='李華'and mpwd= 'aaaaaa2.5 設(shè)計(jì)小結(jié)經(jīng)過這幾個(gè)星期的努力,本次課程設(shè)計(jì)終于完成了。通過這次課程設(shè)計(jì),我對(duì)數(shù)據(jù)庫(kù)這門課程有了更深入的理解,
24、數(shù)據(jù)庫(kù)是一門實(shí)踐性較強(qiáng)的課程,同時(shí)我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,掌握并熟練運(yùn)用SQL語(yǔ)句,提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。在本次課程設(shè)計(jì)和過程中,由于時(shí)間不是很長(zhǎng),再加上要求獨(dú)立完成,系統(tǒng) 需求分析上可能不是很全面,程序中還存在很多缺,希望老師能給予批評(píng)和指導(dǎo)。 經(jīng)過這次課程設(shè)計(jì),我的知識(shí)得到了很大,經(jīng)驗(yàn)也更加豐富。希望能在今后的不 斷的學(xué)習(xí)中和努力中,把程序做得更好。我們學(xué)習(xí)并應(yīng)用了 SQL語(yǔ)言,對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建、修改、刪除方法有了一定 的了解,通過導(dǎo)入表和刪除表、更改表學(xué)會(huì)了對(duì)于表的一些操作, 為了建立一個(gè) 關(guān)系數(shù)據(jù)庫(kù)信息管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設(shè)計(jì)、邏輯設(shè) 計(jì)
25、、物理設(shè)計(jì)、系統(tǒng)調(diào)試、維護(hù)以及系統(tǒng)評(píng)價(jià)的一般過程,為畢業(yè)設(shè)計(jì)打下基礎(chǔ)。這次課程設(shè)計(jì),我更加深入的了解到軟件工程的復(fù)雜性, 以及前期規(guī)劃分析 的重要性。其實(shí)在Java這種面向?qū)ο蟮某绦蛟O(shè)計(jì)中,我的開發(fā)模型能力很是一 股。所以一人之力也難以完成。還得多多感謝同學(xué)的幫助,在以后的學(xué)習(xí)中應(yīng)該 學(xué)習(xí)一些先進(jìn)的思想,并多加實(shí)踐,從寫程序和軟件架構(gòu)兩個(gè)方面都增強(qiáng)自己的 能力。最后,感謝指導(dǎo)老師給予的幫助3應(yīng)用程序設(shè)計(jì)3.1需求分析3.1.1數(shù)據(jù)流圖3.1.2數(shù)據(jù)詞典表3-1 plane飛機(jī)信息表表中列名數(shù)據(jù)類型可否為空說(shuō)明flightNumvarchar2primary key飛機(jī)編號(hào)seatsnumber
26、not null座位數(shù)表3-2 flight航班信息表表中列名數(shù)居類型可否為空說(shuō)明flightNumvarchar2primary key航班編號(hào)planeNumvarchar2not null飛機(jī)編號(hào)startPointvarchar2not null出發(fā)地detinationvarchar2not null目的地startTimevarchar2not null起飛時(shí)間endTimevarchar2not null到達(dá)時(shí)間表3-3 ticket 機(jī)票表表中列名數(shù)據(jù)類型可否為空說(shuō)明flightNumvarchar2primary key航班號(hào)gradevarchar2not null機(jī)艙等級(jí)
27、seatNumvarchar2not null座位號(hào)ticketPricenumbernot null機(jī)票價(jià)格presellvarchar2not null預(yù)售狀態(tài)3.1.3 加工說(shuō)明我們的系統(tǒng)需要六個(gè)實(shí)體:( 1)飛機(jī)實(shí)體實(shí)體名:plane角色:關(guān)于飛機(jī)的信息屬性:飛機(jī)編號(hào),座位數(shù)主鍵:飛機(jī)編號(hào)( 2)航班實(shí)體實(shí)體名:flight角色:航班信息屬性:航班編號(hào),出發(fā)地,目的地,起飛時(shí)間,到達(dá)時(shí)間主鍵:航班編號(hào)( 3)機(jī)票實(shí)體實(shí)體名:ticket角色:機(jī)票信息屬性:航班號(hào),機(jī)艙等級(jí),座位號(hào),機(jī)票價(jià)格,余票數(shù)主鍵:座位號(hào)( 4)旅客實(shí)體實(shí)體名:passenger角色:旅客信息屬性:旅客名,旅客性別
28、,身份證,手機(jī)號(hào),密碼主鍵:旅客名(5)機(jī)票購(gòu)買實(shí)體實(shí)體名:buy角色:旅客購(gòu)買機(jī)票后的信息屬性:旅客名,航班號(hào),機(jī)艙等級(jí),座位號(hào),機(jī)票價(jià)格,購(gòu)買數(shù)量(6)管理員實(shí)體實(shí)體名:manager角色:管理員信息屬性:管理員名,密碼3.2 概要設(shè)計(jì)3.2.1 功能模塊圖航班信息管理模塊機(jī)票信息管理模塊旅客信息管理模塊訂單信息管理模塊3.3 詳細(xì)設(shè)計(jì)3.3.1 主要代碼package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLExce
29、ption;import java.sql.Statement;/*建立數(shù)據(jù)庫(kù)連接 */public class DBUtil private static DBConfig dbConfig ;static/實(shí)例化配制文件對(duì)象dbConfig = new DBConfig();try /加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)Class. forName (dbConfig .getValue( "className");,e); catch (ClassNotFoundException e) throw new RuntimeException("數(shù)據(jù)庫(kù)力口載驅(qū)動(dòng)失敗'/建立
30、連接public static Connection getCon()Connection con = null ;try 機(jī)票預(yù)訂系統(tǒng)19 / 38/ 建立數(shù)據(jù)庫(kù)連接 con =DriverManager. getConnection ( dbConfig .getValue( "url" ), dbConfig .getValue( "user" ), dbConfig .getValue( "password" ); catch (SQLException e) throw new RuntimeException( "
31、; 數(shù)據(jù)庫(kù)連接失敗.", e); return con; / 關(guān)閉連接public static void close(Connection con, Statement st,ResultSet rs)if (rs != null )try rs.close(); catch (SQLException e) throw new RuntimeException( " 關(guān)閉查詢結(jié)果集失敗 e); if (st != null ) try st.close();”關(guān)閉SQL執(zhí)行工具失敗失" 關(guān)閉數(shù)據(jù)庫(kù)連接失敗 catch (SQLException e) thro
32、w new RuntimeException( 敗 .", e);if (con != null )try con.close(); catch (SQLException e) throw new RuntimeException( e);public static void main(String args) if ( getCon () != null ) System. out .println( " 數(shù)據(jù)庫(kù)連接成功."); else System. out .println( " 數(shù)據(jù)庫(kù)連接失敗.");package util;imp
33、ort java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class DBHelperprivate static Connection con;做事務(wù)控制private static boolean isTransSuccess = true; /p
34、ublic static Connection getCon() if (con = null)con = DBUtil.getCon();return con;33 / 38/ 執(zhí)行有參的insert, update, deletepublic static void executeSql(String executeSql(sql, params, true);/ 執(zhí)行帶事務(wù)有參的insert, update, delete/isAutoCommit 為 true 表示結(jié)束事務(wù)public static void executeSql(String語(yǔ)句sql, List<Object
35、> params)語(yǔ)句false 表示事務(wù)過程中sql, List<Object> params,boolean isAutoCommit)Connection con = null;PreparedStatement ps = null;try = false) /事務(wù)操作中,只有有一個(gè)失敗if (isTransSuccess 整個(gè)事務(wù)過程就失敗/throw new RuntimeException("con = getCon(); / 獲得連接 con=DBUtil.getCon();System.out.println(con);con.setAutoComm
36、it(isAutoCommit); / ps = con.prepareStatement(sql); / setParamValue(ps, params);ps.executeUpdate(); catch (Exception e) 事務(wù)失敗");不會(huì)自動(dòng)提交.預(yù)處理SQL語(yǔ)句isTransSuccess = false;if (isAutoCommit) /判斷是不是,整個(gè)事務(wù)結(jié)束, 然后回滾事務(wù)isTransSuccess = true;try con.rollback();/操作回滾數(shù)據(jù) catch (SQLException e1) throw new RuntimeE
37、xception(" throw new RuntimeException(sql + "finally/ 當(dāng)不開啟事務(wù)時(shí),關(guān)閉數(shù)據(jù)庫(kù)連接if (isAutoCommit)DBUtil.close(con, ps, null);數(shù)據(jù)回滾失敗.", e);數(shù)據(jù)操作失敗.", e);/ 執(zhí)行無(wú)參的insert, update, delete語(yǔ)句public void executeSql(String sql)executeSql(sql, null);/ 執(zhí)行有參查詢語(yǔ)句, 如果查詢一個(gè)字段還回一個(gè)List< 與字段類型相同>, 如果查詢多個(gè)字
38、段返回List<Object>public static List<Object> executeQuerySql(String sql,List<Object> params) Connection con = null;PreparedStatement ps = null;ResultSet rs = null;List<Object> objs = null; try con = DBUtil.getCon();ps = con.prepareStatement(sql);setParamValue(ps, params);rs = ps
39、.executeQuery();ResultSetMetaData rsmd = rs.getMetaData();int cols = rsmd.getColumnCount();objs = new ArrayList<Object>();if(cols = 1) while(rs.next()objs.add(rs.getObject(1); elsewhile(rs.next()Object os = new Objectcols;for (int i = 0; i < cols; i+) osi = rs.getObject(i + 1); objs.add(os)
40、; catch (Exception e) e.printStackTrace();finally DBUtil.close(con, ps, null);return objs;/ 給 PreparedStatement 的參數(shù)注值private static void setParamValue(PreparedStatement ps,List<Object> params)if (params != null && params.size() > 0)for (int i = 0; i < params.size(); i+) try ps.se
41、tObject(i + 1, params.get(i); catch (SQLException e) e.printStackTrace();else return;/ public static void main(String args) / if(getCon()!=null)/System.out.println("連接成功");/else/System.out.println("連接失敗");/ / 主要方法/ 注冊(cè)idNum,public boolean addpassenger(String name, String sex, Stri
42、ng String phoneNum, String pwd) String sql = "insert into passenger values(?,?,?,?,?)"List<Object> params = new ArrayList<Object>();params.add(name);params.add(sex);params.add(idNum);params.add(phoneNum);params.add(pwd);trydb.executeSql(sql, params); return true; catch(Exceptio
43、n e) return false;/用戶登錄操作public boolean login(String name, String pwd) String sql ="select * from passenger where name = ? and password= ?"List<Object> params = new ArrayList<Object>(); params.add(name);params.add(pwd);List<Object> results = db.executeQuerySql(sql, params
44、); if(results != null && results.size() > 0)return true;elsereturn true;/查詢個(gè)人信息public List<Object> findAllClasses() String sql = "select * from passenger"return db. executeQuerySql (sql, null 工public boolean updateClasses(String sex, String idNum, String phoneNum, String p
45、assword,String name) String sql = "update passenger set sex=?,idNum=?,phoneNum=?,password= ? where name= ?"List<Object> params =new ArrayList<Object>();params.add(sex);params.add(idNum);params.add(phoneNum);params.add(password);params.add(InitData. loginPname );try db . execute
46、Sql (sql, params); return true ;catch (Exception e) return false ;/訂票public boolean addClasses(String name,String flightnum, String gread, String seatnum,String payMoney, String buynum) String sql = "insert into buy values(?,?,?,?,?,?)"List<Object> params = new ArrayList<Object>
47、;();params.add(name);params.add(flightnum);params.add(gread);params.add(seatnum);params.add(payMoney);params.add(buynum); try db.executeSql(sql, params);/訂票成功后把余票設(shè)置為0 boolean op=true;if(ticketNum(op,seatnum) return true;elsereturn false; catch(Exception e) return false;/訂票后余票減1,退票后加1public boolean t
48、icketNum(boolean op,String seatNum) String sql =""if(op)sql="update ticket set presell='0' where seatNum=? " elsesql="update ticket set presell='1' where seatNum=? "List<Object> params = new ArrayList<Object>(); params.add(seatNum);trydb.exec
49、uteSql(sql, params);return true;catch(Exception e) return false;/ 查詢已訂購(gòu)public List<Object> findbuyByName(String name) String sql = "select * from buy where name=?" List<Object> params = new ArrayList<Object>(); params.add(name);return db.executeQuerySql(sql, params);/ 退票p
50、ublic boolean delClasses(String seatnum) String sql = "delete from buy where seatnum =?" List<Object> params = new ArrayList<Object>(); params.add(seatnum);trydb.executeSql(sql, params);/ 退票成功后把余票設(shè)置為1boolean op=false;if(ticketNum(op,seatnum) return true;elsereturn false;catch(Exception e) return false;/管理員登錄public boolean login(String name, String pwd) String sql ="select * from manager where mname = ? and mpwd= ?"List<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)農(nóng)業(yè)模式在辦公環(huán)境中的應(yīng)用研究
- 現(xiàn)代教育技術(shù)在課堂管理中的應(yīng)用
- 7 信息的交流傳播 說(shuō)課稿-2024-2025學(xué)年科學(xué)六年級(jí)上冊(cè)教科版
- 現(xiàn)代醫(yī)療物資供應(yīng)鏈管理的挑戰(zhàn)與對(duì)策研究
- 生產(chǎn)設(shè)備維護(hù)與提高產(chǎn)品質(zhì)量的關(guān)系研究
- 物流配送成本控制的電子商務(wù)策略
- 現(xiàn)代金融變革移動(dòng)支付在全球的推廣與應(yīng)用
- 現(xiàn)代辦公環(huán)境下的穩(wěn)固結(jié)構(gòu)設(shè)計(jì)探索
- 物聯(lián)網(wǎng)數(shù)據(jù)傳輸技術(shù)在綠色能源領(lǐng)域的應(yīng)用
- 環(huán)保理念在建筑設(shè)計(jì)中的體現(xiàn)與實(shí)踐
- 自卸車司機(jī)實(shí)操培訓(xùn)考核表
- 教師個(gè)人基本信息登記表
- 中考現(xiàn)代文閱讀理解題精選及答案共20篇
- ESD測(cè)試作業(yè)指導(dǎo)書-防靜電手環(huán)
- 高頻變壓器的制作流程
- 春季開學(xué)安全第一課PPT、中小學(xué)開學(xué)第一課教育培訓(xùn)主題班會(huì)PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級(jí)上冊(cè)語(yǔ)文教材分析
- 艾賓浩斯遺忘曲線復(fù)習(xí)方法表格模板100天
- APR版制作流程
- 《C++程序設(shè)計(jì)》完整教案
評(píng)論
0/150
提交評(píng)論