版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、煙臺(tái)大學(xué)畢業(yè)論文摘要 傳統(tǒng)的就餐方式往往會(huì)出現(xiàn)人們到餐廳就餐,排隊(duì)或沒有位置的現(xiàn)象。因此,開發(fā)出圖文并茂,信息能夠及時(shí)更新與查看的網(wǎng)上訂餐的系統(tǒng)就成為了解決上述問(wèn)題的主要途徑。網(wǎng)上訂餐是近年來(lái)隨著網(wǎng)絡(luò)技術(shù)的發(fā)展而產(chǎn)生的一種新型的就餐方式。它與傳統(tǒng)就餐方式相比,網(wǎng)上訂餐擁有很多優(yōu)勢(shì),這樣的訂餐方式效果很好,既讓顧客覺得方便、快捷,又對(duì)每個(gè)訂單的信息保管妥善、處理及時(shí),實(shí)現(xiàn)了高度智能化管理。網(wǎng)絡(luò)訂餐方式將成為餐飲業(yè)銷售的新模式與新的增長(zhǎng)點(diǎn)。在開發(fā)網(wǎng)上訂餐管理系統(tǒng)中,采用了MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)及Java主流開發(fā)技術(shù)進(jìn)行了實(shí)現(xiàn)流程規(guī)范化,數(shù)據(jù)靈活化配置一套網(wǎng)上訂餐管理系統(tǒng)。關(guān)鍵詞 數(shù)據(jù)庫(kù)管理系統(tǒng)
2、餐飲管理系統(tǒng) 系統(tǒng)設(shè)計(jì) Java MySQLAbstract Traditional dining way will often present people to restaurants, waiting in line or no position phenomenon. Therefore, developed with pictures, information can update and view online order system becomes the main ways of solving these problems. Online order is in recen
3、t years with the development of network technology and produces a new dining way. Compared with the traditional it dining way, online order has many advantages, such order way effect very good, already make customers feel convenient, quick, and for each order information properly, the timely handlin
4、g, realize the highly intelligent management. The network will become the restaurant industry sales order way of new pattern and new growth point. In the development of online order management system, using the MySQL database management system and Java development technology realize mainstream reali
5、zation of process standardization, the data included a catering management system configuration. Key Words Database Management System Catering Management System System Design Java MySQL1綜述1.1 概述近年來(lái),隨著人民的生活水平的不斷提高,餐飲業(yè)的消費(fèi)持續(xù)增長(zhǎng),競(jìng)爭(zhēng)愈來(lái)愈激烈。然而,傳統(tǒng)餐飲企業(yè)的日常運(yùn)作還是靠人工管理,從原材料入庫(kù)到客人點(diǎn)單,再到結(jié)賬,基本上由人工完成記錄,這樣做不僅耗費(fèi)人力資源而且容易導(dǎo)致記
6、錄丟失或重復(fù)等錯(cuò)誤,造成管理水平低下。這就迫切需要標(biāo)準(zhǔn)的、高效率的計(jì)算機(jī)管理方式引導(dǎo)其發(fā)展,通過(guò)計(jì)算機(jī)管理該企業(yè)的日常運(yùn)作,給管理者以決策參考的模型,來(lái)不斷完善管理水平,提高工作效率。當(dāng)今世界已進(jìn)入了在計(jì)算機(jī)信息管理領(lǐng)域中激烈競(jìng)爭(zhēng)的時(shí)代,應(yīng)用計(jì)算機(jī)已經(jīng)變得十分普遍了,如同人們現(xiàn)在離不開的自行車、汽車一樣。大家都應(yīng)該承認(rèn),誰(shuí)掌握的知識(shí)多,信息量大,信息處理速度快,批量大,誰(shuí)的效率就高,誰(shuí)就能夠在各種競(jìng)爭(zhēng)中立于不敗之地。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。越來(lái)越多的管理人員意識(shí)到信息管理的重要性。作為計(jì)算機(jī)應(yīng)
7、用的一部分,使用計(jì)算機(jī)對(duì)餐飲企業(yè)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高信息管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理與世界接軌的重要條件。本系統(tǒng)選用MySQL數(shù)據(jù)庫(kù)及配套的平臺(tái)Win 7。開發(fā)工具采用了Java編程語(yǔ)言,設(shè)計(jì)出一個(gè)簡(jiǎn)單易操作的后臺(tái)應(yīng)用程序,實(shí)現(xiàn)對(duì)菜品、購(gòu)物車的添加、查詢、結(jié)算、修改及刪除功能。使用本系統(tǒng),員工可以方便快捷地添加菜品,并在購(gòu)物車內(nèi)進(jìn)行快速結(jié)算。1.2 選題背景和研究意義面對(duì)餐飲業(yè)多元化的經(jīng)營(yíng)現(xiàn)狀,經(jīng)營(yíng)的特色、規(guī)模、出品這些因素的不同,帶給餐飲企業(yè)的則是不同的標(biāo)準(zhǔn)和工
8、作流程和方法,面對(duì)著這解決方法不一的情況,對(duì)人才的專業(yè)化程度的要求也相應(yīng)地提高了,然而在國(guó)內(nèi)市場(chǎng)上,餐飲業(yè)人才供應(yīng)不足,在這樣的兩難情況下,網(wǎng)上訂餐系統(tǒng)的出現(xiàn)暫緩了這一緊張局面。首先,網(wǎng)上訂餐管理系統(tǒng)不是單純的用于結(jié)賬計(jì)算的工具,它有著科學(xué)的、標(biāo)準(zhǔn)的管理體系,它是通過(guò)對(duì)目前餐飲市場(chǎng)的具體情況科學(xué)的調(diào)研分析后設(shè)計(jì)而成的,它能夠針對(duì)中餐因其菜品的多樣化和特色化的服務(wù)很難實(shí)現(xiàn)標(biāo)準(zhǔn)化管理,使中餐企業(yè)的成本控制很難實(shí)現(xiàn)這些問(wèn)題得到有效的解決。其次,網(wǎng)上訂餐管理系統(tǒng)能夠給出具體的相應(yīng)的符合企業(yè)自身要求的較科學(xué)的標(biāo)準(zhǔn)化管理流程,這暫時(shí)緩解了專業(yè)人才的需求,通過(guò)使用該系統(tǒng)就能完成專業(yè)人員所要做的事。最后,網(wǎng)上
9、訂餐管理系統(tǒng)可以針對(duì)企業(yè)的經(jīng)營(yíng)現(xiàn)狀而做出科學(xué)的分析,使得企業(yè)對(duì)市場(chǎng)的應(yīng)變能力得到了提高,從而通過(guò)餐飲管理系統(tǒng)來(lái)實(shí)現(xiàn)強(qiáng)化管理、降低成本、堵漏節(jié)流等作用。更好的完善企業(yè)的經(jīng)營(yíng)管理,提高企業(yè)自身的競(jìng)爭(zhēng)實(shí)力。1.3 現(xiàn)狀隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展,各行業(yè)都呈現(xiàn)出生機(jī)勃勃的發(fā)展景象,其中餐飲業(yè)的發(fā)展尤為突出。近兩年來(lái)已呈現(xiàn)出高速發(fā)展的態(tài)勢(shì)。但在快速發(fā)展的同時(shí),餐飲業(yè)在日常經(jīng)營(yíng)管理中仍普遍采用手工管理方式,整體科技含量低。隨著餐飲企業(yè)規(guī)模和數(shù)量的不斷增長(zhǎng),手工管理模式無(wú)論是在工作效率、人員成本,還是提供決策信息方面都已難以適應(yīng)現(xiàn)代化經(jīng)營(yíng)管理的要求,因此制約了整個(gè)餐飲業(yè)的規(guī)?;l(fā)展和整體服務(wù)水平的提升。這就
10、要求系統(tǒng)能有效、快速、安全、可靠和無(wú)誤的完成上述操作。并要求客戶機(jī)的界面要簡(jiǎn)單明了,易于操作,服務(wù)器程序利于維護(hù)。目前市場(chǎng)上大多數(shù)餐飲軟件是基于Windows操作系統(tǒng)的,也有部分餐飲軟件考慮到版權(quán)的問(wèn)題,采用Linux操作系統(tǒng);又比如,系統(tǒng)數(shù)據(jù)庫(kù),有Access、Sybase、MySQL、SQLServer等,對(duì)于餐飲系統(tǒng)來(lái)說(shuō),采用什么數(shù)據(jù)庫(kù)與餐廳的規(guī)模比較相關(guān),較小的餐廳可以采用比較簡(jiǎn)單的數(shù)據(jù)庫(kù)如Access,這樣使用維護(hù)都可以做的比較簡(jiǎn)單,而規(guī)模大的餐廳就應(yīng)該用SQLServer這樣的數(shù)據(jù)庫(kù),可以保障數(shù)據(jù)比較安全、系統(tǒng)比較穩(wěn)定,但同時(shí)也要求有專門的系統(tǒng)管理員來(lái)維護(hù)。還有,數(shù)據(jù)的錄入通常有三
11、種方式,一是基于普通電腦,二是基于觸摸屏,三是采用無(wú)線點(diǎn)菜系統(tǒng),而無(wú)線技術(shù)又有基于紅外技術(shù)和基于無(wú)線網(wǎng)絡(luò)的技術(shù)。從目前的發(fā)展趨勢(shì)看,餐飲系統(tǒng)越來(lái)越多的采用觸摸屏,而無(wú)線技術(shù)正在逐步成熟起來(lái)。 在國(guó)內(nèi),餐飲軟件的發(fā)展也正處于蓬勃發(fā)展的時(shí)期,如北京天良軟件,它是一家以軟件開發(fā)、銷售為主營(yíng)方向的技術(shù)開發(fā)型企業(yè)。天良軟件立足于餐飲及酒店客房管理市場(chǎng),致力于為客戶提供一流的產(chǎn)品及服務(wù),企業(yè)下設(shè)市場(chǎng)拓展部、產(chǎn)品研發(fā)部、公關(guān)策劃部、客戶服務(wù)部等主要職能部門。在國(guó)外發(fā)展比較成熟的軟件還有龍騰觸摸屏點(diǎn)菜系統(tǒng),“龍騰餐飲管理系統(tǒng)”軟件采用了獨(dú)特的組網(wǎng)技術(shù),以Window為操作平臺(tái),全32為應(yīng)用軟件系統(tǒng),功能在國(guó)內(nèi)
12、處于領(lǐng)先地位。網(wǎng)絡(luò)系統(tǒng)是以Windows搭成的對(duì)等網(wǎng)絡(luò),簡(jiǎn)單實(shí)用、穩(wěn)定可靠,保證企業(yè)非常迅速地把信息傳遞到各個(gè)點(diǎn)。這個(gè)系統(tǒng)適用于快餐企業(yè)、西餐、火鍋有勾劃式菜單的餐飲企業(yè),中高檔中餐可以配合其他點(diǎn)菜設(shè)備一起使用這個(gè)系統(tǒng)。2.系統(tǒng)技術(shù)概述2.1 java程序開發(fā)技術(shù)學(xué)習(xí)java方面的知識(shí),最好應(yīng)配合運(yùn)用java語(yǔ)言設(shè)計(jì)出切實(shí)可行的軟件。Java不僅是編程語(yǔ)言,還是一個(gè)開發(fā)平臺(tái),Java技術(shù)給程序員提供了許多工具:編譯器、解釋器、文檔生成器和文件打包工具等等。同時(shí)Java還是一個(gè)程序發(fā)布平臺(tái),有兩種主要的“發(fā)布環(huán)境”,首先Java運(yùn)行時(shí)環(huán)境(Java Runtime Environment,簡(jiǎn)稱J
13、RE)包含了完整的類文件包,其次許多主要的瀏覽器都提供了Java解釋器和運(yùn)行時(shí)環(huán)境。目前Sun公司把java平臺(tái)劃分成J2EE、J2SE、J2ME三個(gè)平臺(tái),針對(duì)不同的市場(chǎng)目標(biāo)和設(shè)備進(jìn)行定位。J2EE是Java2 Enterprise Edition,主要目的是為企業(yè)計(jì)算提供一個(gè)應(yīng)用服務(wù)器的運(yùn)行和開發(fā)平臺(tái)。J2EE本身是一個(gè)開放的標(biāo)準(zhǔn),任何軟件廠商都可以推出自己的符合J2EE標(biāo)準(zhǔn)的產(chǎn)品,使用戶可以有多種選擇。Java主要有以下特性:1Java語(yǔ)言是簡(jiǎn)單的。Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C+語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C+ 中很少使用的、很難理解的、
14、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。 2Java語(yǔ)言是面向?qū)ο蟮摹ava語(yǔ)言提供類、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為Implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C+ 語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。 3Java語(yǔ)言是分布式的。Java語(yǔ)言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net)
15、,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、URL Connection、Socket、Server Socket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。 4Java語(yǔ)言是健壯的。Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。 5Java語(yǔ)言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類Class Loader),如
16、分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類Security Manager)讓Java應(yīng)用設(shè)置安全哨兵。 6Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(后綴為.java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為.class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 7Java語(yǔ)言是可移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)
17、現(xiàn)的。 8Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。 9Java是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C+4。 2.2 MySQL數(shù)據(jù)庫(kù)系統(tǒng)技術(shù)MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng)
18、,關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒有減少它受歡迎
19、的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建
20、立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。MySQL系統(tǒng)主要有以下特性:1使用C和C+編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性2支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)3為多種編程語(yǔ)言提供了API。這些編程語(yǔ)言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4支持多線程,充分利用CPU資源5優(yōu)化的SQL查詢算法,有效地提高查詢速度6既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的
21、軟件中。7提供多語(yǔ)言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。8提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑。9提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具。10支持大型的數(shù)據(jù)庫(kù)??梢蕴幚?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。11支持多種存儲(chǔ)引擎。2.3系統(tǒng)數(shù)據(jù)庫(kù)連接JDBC技術(shù)是Java DataBase Connectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(Application Programming Interface)。它由一組用Java語(yǔ)言編寫的類和接口組成。通過(guò)這些類和接
22、口,程序開發(fā)人員可以在Java語(yǔ)言中方便地建立與數(shù)據(jù)庫(kù)的鏈接,通過(guò)執(zhí)行相應(yīng)SQL語(yǔ)句,完成對(duì)不同數(shù)據(jù)庫(kù)的訪問(wèn)。因此,開發(fā)人員使用JDBC API可以不必編寫一個(gè)應(yīng)用程序來(lái)訪問(wèn)Sybase數(shù)據(jù)庫(kù),又另外編寫一個(gè)應(yīng)用程序去訪問(wèn)Oracle數(shù)據(jù)庫(kù),再寫一個(gè)應(yīng)用程序訪問(wèn)的MYSQL。不但如此,使用Java語(yǔ)言編寫的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上開發(fā)不同的應(yīng)用程序。簡(jiǎn)單地說(shuō),JDBC能完成下列三件事:同一個(gè)數(shù)據(jù)庫(kù)建立連接;向數(shù)據(jù)庫(kù)建立連接;處理數(shù)據(jù)庫(kù)返回的結(jié)果。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫(kù)功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。說(shuō)JDBC是一
23、處低級(jí)的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫(kù)連接API要容易使用些,但它有同樣可以作為更高級(jí)的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如Visual Age For Java、Visual Café、J+等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫(kù)的表或視圖映射為Java類,程序員通過(guò)可視化工具直接對(duì)Java對(duì)象進(jìn)行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對(duì)對(duì)象的各種屬性、方法的操作來(lái)自動(dòng)產(chǎn)生。另一種使用JDBC API 的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,選中一個(gè)任務(wù)后,提
24、示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過(guò)這處方式,用戶可以完成對(duì)數(shù)據(jù)庫(kù)的操作,即使他并不了解SQL語(yǔ)法以及JDBC編程。數(shù)據(jù)庫(kù)訪問(wèn)的三層結(jié)構(gòu)如圖2.1所示,瀏覽器端程序要訪問(wèn)數(shù)據(jù)庫(kù),首先通過(guò)中間件,然后由中間件對(duì)數(shù)據(jù)庫(kù)操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過(guò)才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。圖2.1 使用中間件的數(shù)據(jù)庫(kù)訪問(wèn)三層結(jié)構(gòu)用戶對(duì)數(shù)據(jù)庫(kù)的存取權(quán)限認(rèn)證是中間件中完成,對(duì)數(shù)據(jù)庫(kù)的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作后,再將處理結(jié)果通過(guò)Web服務(wù)器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過(guò)加密算法進(jìn)行
25、加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫(kù)的存取操作,數(shù)據(jù)庫(kù)存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫(kù)訪問(wèn)模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)處理SQL語(yǔ)句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖2.2所示。圖2.2 JDBC的三層模型因?yàn)椤敝虚g層”可以進(jìn)行對(duì)訪問(wèn)的控制并協(xié)同數(shù)據(jù)庫(kù)的更新,并且可以使用一個(gè)易用的高層API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中
26、所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫(kù)的溝通橋梁。它提供了三項(xiàng)服務(wù)功能:一、與數(shù)據(jù)庫(kù)建立連接。二、將SQL語(yǔ)句傳遞給數(shù)據(jù)庫(kù)。三、從數(shù)據(jù)庫(kù)取得SQL語(yǔ)句的執(zhí)行結(jié)果。當(dāng)JDBC要與數(shù)據(jù)庫(kù)建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序,Class.forName()即是在執(zhí)行此項(xiàng)工作。建立數(shù)據(jù)庫(kù)連接的第一步驟就是將JDBC驅(qū)動(dòng)程序的類載入至JVM(Java VirtualL Machine)中,本系統(tǒng)中利用java.lang.Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動(dòng)程序載入進(jìn)來(lái)。完成載入驅(qū)動(dòng)程序的步驟后,必須使用java.sal.Dr
27、iverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫(kù)間的連接對(duì)象。此連接對(duì)象的類類型為java.sal.Connection,必須通過(guò)它才能將SQL指令傳遞給數(shù)據(jù)庫(kù),而執(zhí)行結(jié)果也需要通過(guò)連接對(duì)象來(lái)取得。當(dāng)取得連接對(duì)象后,還必須取得Statement對(duì)象才能對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL指令。Statement主要實(shí)現(xiàn)兩個(gè)功能:執(zhí)行SQL語(yǔ)句以及取得執(zhí)行結(jié)果。在java.sql.Statement的sql對(duì)象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個(gè)ResultSet 對(duì)象,這個(gè)對(duì)象提供了一個(gè)存取SQL執(zhí)行結(jié)果的管道,以便通過(guò)它將表格數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出。每個(gè)Statement對(duì)
28、象只能產(chǎn)生一個(gè)ResultSet 對(duì)象。數(shù)據(jù)庫(kù)連接如圖2.3所示:圖2.3 數(shù)據(jù)庫(kù)的連接處理數(shù)據(jù)庫(kù)的連接處理具體實(shí)現(xiàn)如下:/建立JDBCODBC橋sun.jdbc.odbc.JdbcOdbcDriver;/橋建立不成功時(shí)的錯(cuò)誤處理catch(ClassNotFoundException event)/建立與數(shù)據(jù)庫(kù)的連接,并發(fā)送SQL查詢語(yǔ)句,將結(jié)果保存到rs對(duì)象中Con=建立JDBCODBC橋Sql=SQL查詢語(yǔ)句執(zhí)行查詢Rs=返回結(jié)果/SQL出錯(cuò)處理 catch(SQLException e1)有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必
29、為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫另一個(gè)程序等等,程序員只需用JDBC API寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及
30、第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。 Java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而 JDBC 正是作為此種用途的機(jī)制。 JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程
31、數(shù)據(jù)庫(kù)企業(yè)也可以用 JDBC 通過(guò) Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開始使用Java 編程語(yǔ)言,對(duì)從 Java 中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。 MIS 管理員們都喜歡 Java 和 JDBC 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人
32、就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。簡(jiǎn)單地說(shuō),JDBC 可做三件事:與數(shù)據(jù)庫(kù)建立連接、發(fā)送 SQL 語(yǔ)句并處理結(jié)果。下列代碼段給出了以上三步的基本示例: Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.execu
33、teQuery("SELECT a, b, c FROM Table1"); while (rs.next() int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); 上述代碼對(duì)基于JDBC的數(shù)據(jù)庫(kù)訪問(wèn)做了經(jīng)典的總結(jié)。3需求分析主要分為系統(tǒng)可行性分析、用戶需求分析;系統(tǒng)分析要求必須了解系統(tǒng)所實(shí)現(xiàn)的功能,這個(gè)設(shè)計(jì)的好壞直接影響的后面的開發(fā)。用戶需求分析主要是了解用戶的有哪些需求,本系統(tǒng)主要是用戶的購(gòu)餐需求以及管
34、理的需求。只有了解了需求分析才能進(jìn)行系統(tǒng)的開發(fā),否則就會(huì)事倍功半,達(dá)不到我們預(yù)期的效果,因此需求分析是至關(guān)重要的。3.1系統(tǒng)的可行性分析可行性,是指在當(dāng)前情況下,設(shè)計(jì)開發(fā)這個(gè)系統(tǒng)是否有必要,是否具備必要的條件,它不僅包括必要性,還包括合理性。系統(tǒng)的可行性分析,是針對(duì)要設(shè)計(jì)的系統(tǒng),研究其設(shè)計(jì)是否存在內(nèi)外部的必要條件,包括技術(shù)上、資金上、經(jīng)濟(jì)上、人力資源以及組織管理上的必要條件,同時(shí)要分析在目前條件下是否有必要設(shè)計(jì)這樣一個(gè)系統(tǒng)。3.1.1技術(shù)可行性1硬件、軟件要求不高,目前市場(chǎng)上的一般計(jì)算機(jī)軟硬件資源均能滿足系統(tǒng)開發(fā)要求。其中運(yùn)用的主要軟件工具有 MyEclipse6.5 ,ACDSee5.0等,
35、數(shù)據(jù)庫(kù)開發(fā)采用MySQL5.0。2. 技術(shù)支持主要運(yùn)用java技術(shù)和MySQL數(shù)據(jù)庫(kù)技術(shù)。3. 維護(hù)操作工作方便,后臺(tái)操作快捷明了,操作人員可以在短時(shí)間內(nèi)完全掌握維護(hù)技術(shù)。本系統(tǒng)自主網(wǎng)上訂餐管理,系統(tǒng)具有的菜品管理、購(gòu)物車、訂單統(tǒng)計(jì)等功能,系統(tǒng)操作簡(jiǎn)單。3.1.2社會(huì)可行性1網(wǎng)絡(luò)訂餐將傳統(tǒng)的交易流程信息化、數(shù)字化,一方面以信息流代替了面對(duì)面的交易,可以大量減少人力、物力,降低了成本;另一方面突破了時(shí)間和空間的限制,使得交易活動(dòng)可以在任何時(shí)間、任何地點(diǎn)進(jìn)行,從而大大提高了效率。2網(wǎng)絡(luò)訂餐使餐飲業(yè)以較低的成本進(jìn)入信息化市場(chǎng),使得中小企業(yè)有可能擁有和大企業(yè)一樣的信息資源。它開放性的特點(diǎn),為企業(yè)創(chuàng)造了
36、更多的交易機(jī)會(huì),提高了中小企業(yè)的競(jìng)爭(zhēng)能力。3網(wǎng)絡(luò)訂餐重新定義了傳統(tǒng)的流通模式,減少了中間環(huán)節(jié),使得生產(chǎn)者和消費(fèi)者的直接交易成為可能,從而在一定程度上改變了整個(gè)社會(huì)經(jīng)濟(jì)運(yùn)行的方式。3.1.3經(jīng)濟(jì)可行性1. 資金可行性:由于系統(tǒng)開發(fā)環(huán)境配置以及其開發(fā)并不復(fù)雜,只需一些基本的開發(fā)工具。而且開發(fā)出的系統(tǒng)操作起來(lái)也比較簡(jiǎn)單,另外具備網(wǎng)絡(luò)中的一些資源優(yōu)勢(shì),因此開發(fā)費(fèi)用較低。2經(jīng)濟(jì)合理性:由于通過(guò)網(wǎng)絡(luò)進(jìn)行商務(wù)活動(dòng),信息成本低,足不出戶,可節(jié)省交通費(fèi),且減少了中介費(fèi)用,因此整個(gè)交易活動(dòng)會(huì)降低成本。3.1.4可行性研究結(jié)論依據(jù)以上因素,本系統(tǒng)開發(fā)項(xiàng)目不僅方便快捷、高效,而且社會(huì)效益比較好,從而使本系統(tǒng)開發(fā)者相信
37、該系統(tǒng)開發(fā)出來(lái)之后將取得的成功。綜上所述,此項(xiàng)目在技術(shù)、經(jīng)濟(jì)和社會(huì)效益上是完全可行的。3.2 系統(tǒng)功能要求 作為一個(gè)網(wǎng)上訂餐系統(tǒng)。首先為了保證客戶能夠很方便的進(jìn)行菜品訂購(gòu),系統(tǒng)應(yīng)該具有分類查看餐品,系統(tǒng)應(yīng)該實(shí)現(xiàn)“購(gòu)物車”的功能,用戶可以把選中的商品放入“購(gòu)物訂單”中,在選購(gòu)?fù)戤吅笤僖黄鸾Y(jié)帳。功能包括如下幾部分:1、登陸訂餐系統(tǒng)2、查看菜品3、將菜品放入購(gòu)物車4、對(duì)購(gòu)物車內(nèi)的菜品進(jìn)行結(jié)算3.3 系統(tǒng)界面要求本系統(tǒng)向用戶提供命令行使用界面。要求使用簡(jiǎn)單方便,有足夠的提示信息,符合用戶的操作習(xí)慣。同時(shí)將每個(gè)命令的命令字和參數(shù)分開,以利于有效引導(dǎo)用戶進(jìn)行合法操作。4系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)41系統(tǒng)功能設(shè)計(jì)目標(biāo)理
38、論系統(tǒng)功能設(shè)計(jì)目標(biāo)如下:(1) 實(shí)用性強(qiáng):我們努力使系統(tǒng)符合實(shí)際操作流程的習(xí)慣,并盡量減少用戶的輸入,易學(xué)易用的友好的用戶界面,滿足各層次的用戶使用的需求;(2) 先進(jìn)的程序結(jié)構(gòu):使用當(dāng)代前衛(wèi)的軟件編程,能延長(zhǎng)其生命周期,易于維護(hù)與管理;(3) 安全可靠性高:后臺(tái)維護(hù)功能齊全,根據(jù)平臺(tái)在各個(gè)階段不同的使用情況,管理人員可以設(shè)置相應(yīng)的操作權(quán)限,增加系統(tǒng)注冊(cè),分配各個(gè)欄目的管理權(quán)限,實(shí)現(xiàn)系統(tǒng)的維護(hù),保證系統(tǒng)的安全、可靠;(4) 使用模塊化設(shè)計(jì)的方法:使系統(tǒng)具有良好的可擴(kuò)充性,以適應(yīng)其不同階段的發(fā)展需要,便于后來(lái)者分析、維護(hù);(5) 操作簡(jiǎn)單,維護(hù)方便:每個(gè)子系統(tǒng)都具有相對(duì)獨(dú)立的系統(tǒng)維護(hù)功能對(duì)可變化
39、的項(xiàng)目可自行維護(hù);(6) 查詢功能強(qiáng)大:可以對(duì)菜品的基本情況、用戶基本情況,菜品評(píng)信息,用戶留言等按各種方式查詢,可形成各種表單,同時(shí)還可對(duì)其進(jìn)行匯總,使管理人員能及時(shí)準(zhǔn)確地掌握用戶和菜品等的基本情況。42網(wǎng)絡(luò)訂餐系統(tǒng)功能模塊劃分:根據(jù)需求分析與系統(tǒng)功能設(shè)計(jì)目標(biāo),結(jié)合實(shí)際情況本系統(tǒng)功能模塊設(shè)計(jì)分為如下幾個(gè)模塊:1主頁(yè):在這里我們可以看見本系統(tǒng)的主要功能和信息。2用戶登陸:用戶在登陸界面輸入登錄名、密碼即可登陸網(wǎng)站。3菜品瀏覽:成功登陸后的用戶可以分別瀏覽菜品,并將想要的菜品提交到購(gòu)物車頁(yè)面。4訂購(gòu)菜品:成功登陸的用戶可以在該頁(yè)面定購(gòu)所需要的菜品。5查看購(gòu)物車:成功登陸的用戶可以在購(gòu)物車界面查看
40、已經(jīng)添加的菜品。6修改訂單:成功登陸的用戶可以在購(gòu)物車中修改或刪除已經(jīng)訂購(gòu)的菜品。7. 菜品結(jié)算:成功登陸的用戶可以在購(gòu)物車中進(jìn)行所有菜品價(jià)格的加總。算出此次訂購(gòu)菜品所需的付款金額。43 網(wǎng)絡(luò)便民服務(wù)的體系結(jié)構(gòu):三層結(jié)構(gòu):視 圖數(shù) 據(jù) 庫(kù)邏輯處理即:JSP技術(shù) + JavaBeans + MYSQL 數(shù)據(jù)庫(kù)4.4 數(shù)據(jù)庫(kù)系統(tǒng)概述:數(shù)據(jù)庫(kù)系統(tǒng)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展而來(lái)的,經(jīng)歷了層次數(shù)據(jù)庫(kù)、網(wǎng)狀數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)三個(gè)階段。由于關(guān)系數(shù)據(jù)庫(kù)采用人們比較容易理解和接受的二維表格來(lái)組織數(shù)據(jù),發(fā)展迅速,已成為數(shù)據(jù)庫(kù)產(chǎn)品的主流。本系統(tǒng)的前端開發(fā)是使用JSP技術(shù),通過(guò)JavaBeans進(jìn)行邏輯控制和數(shù)據(jù)庫(kù)連接
41、,而后臺(tái)數(shù)據(jù)庫(kù)采用的是MYSQL 。MYSQL 數(shù)據(jù)庫(kù)管理系統(tǒng)是一項(xiàng)全面完整的數(shù)據(jù)庫(kù)與分析產(chǎn)品。MYSQL 非常容易學(xué)習(xí)、使用,介紹、學(xué)習(xí)資料比較多,MYSQL 全面支持Web功能的數(shù)據(jù)庫(kù)解決方案,與此同時(shí),MYSQL 還在可伸縮性與可靠性方面保持著多項(xiàng)基準(zhǔn)測(cè)試紀(jì)錄,而這兩方面特性又都是企業(yè)數(shù)據(jù)庫(kù)系統(tǒng)在激烈市場(chǎng)競(jìng)爭(zhēng)中克敵致勝的關(guān)鍵所在。無(wú)論以應(yīng)用程序開發(fā)速度還是以事務(wù)處理運(yùn)行速度來(lái)衡量,MYSQL 都堪稱最為快捷的數(shù)據(jù)庫(kù)系統(tǒng)。對(duì)比MYSQL 和其他的大型數(shù)據(jù)庫(kù)管理系統(tǒng),MYSQL 具有可靠的安全性,較快的存儲(chǔ)速度,高度的兼容性,簡(jiǎn)單易用,應(yīng)用MYSQL 作為后臺(tái)數(shù)據(jù)庫(kù)為系統(tǒng)的開發(fā)提供了強(qiáng)有力的
42、支持,并對(duì)以后軟件的運(yùn)行提供了堅(jiān)實(shí)的基礎(chǔ),因此,我們采用了MYSQL 作為后臺(tái)數(shù)據(jù)庫(kù)。45 數(shù)據(jù)庫(kù)表:本系統(tǒng)的數(shù)據(jù)庫(kù)其中包括七個(gè)表,分別為菜品菜品表list1,菜品類型表tscc、lc、zs、yl、ts, ,定單詳細(xì)信息表cai。詳情請(qǐng)見下面的數(shù)據(jù)庫(kù)表: 菜品菜品表tscclc:zs:ts:2、菜品類型表list13、定單詳細(xì)信息表cai5測(cè)試5.1 系統(tǒng)運(yùn)行環(huán)境的搭建1安裝JDK要編譯和調(diào)試運(yùn)行Java程序,首先需要安裝JDK,可以從Sun公司的站點(diǎn)下載,當(dāng)然需要根據(jù)使用的平臺(tái)的不同來(lái)下載不同的版本。下載并安裝好以后,需要配置環(huán)境變量,其作用是讓應(yīng)用程序可以方便快捷地找到所需要的路徑。配置
43、Java運(yùn)行環(huán)境主要用到的環(huán)境變量有3個(gè):JAVA_HOME:就是Java的安裝路徑。PATH:PATH是Windows固有的。要加上JAVA_HOMEbin目錄,這樣在運(yùn)行javac、java等命令時(shí)就不用輸入很長(zhǎng)的路徑了。CLASSPATH:CLASSPATH是運(yùn)行Java非常重要的一個(gè)環(huán)境變量,Java在編譯和運(yùn)行應(yīng)用程序時(shí)都要通過(guò)它去找到需要的類文件。放在CLASSPATH里的一般是路徑或jar文件,如果是路徑的話就是說(shuō)這個(gè)路徑下的類可以使用。還要考慮到Java文件的包(package)和文件夾之間的對(duì)應(yīng)關(guān)系。2. MySQL5.0的安裝在安裝數(shù)據(jù)庫(kù)管理軟件MySQL5.0成功后,還應(yīng)
44、安裝Sqlyog來(lái)作為MySQL5.0的可視化運(yùn)行界面。 3. JDBC驅(qū)動(dòng)的安裝下載MySQL鏈接Java的壓縮包mysql-connector-java-5.1.12-bin.jar,并將它放置在安裝Java的目錄 C:Program FilesJavajdk1.6.0_19jrelibext下。同時(shí),編寫程序HelloMysql.Java來(lái)測(cè)試Java與MySQL是否連通。5.2系統(tǒng)測(cè)試軟件測(cè)試是保證軟件可靠性的手段,測(cè)試階段的任務(wù)就是發(fā)現(xiàn)并改正軟件中的錯(cuò)誤。軟件測(cè)試是軟件開發(fā)過(guò)程中最繁重的任務(wù)。通過(guò)編碼和調(diào)試只能保證程序能夠正常的運(yùn)行起來(lái),不出現(xiàn)編譯上的錯(cuò)誤,但是這并不意味著程序沒有潛
45、藏的錯(cuò)誤和邏輯上的錯(cuò)誤,而要排除這樣的錯(cuò)誤就要通過(guò)測(cè)試來(lái)完成。測(cè)試在本系統(tǒng)中包括界面的測(cè)試和對(duì)程序執(zhí)行結(jié)果是否正確的測(cè)試。本系統(tǒng)的測(cè)試如圖4.1所示。圖4.1 系統(tǒng)中所涉及的測(cè)試在編寫完代碼之后,要把程序執(zhí)行過(guò)程中所有可能走到的點(diǎn)記下來(lái),這些點(diǎn)是可能導(dǎo)致程序出現(xiàn)錯(cuò)誤的點(diǎn),并且把對(duì)走到相應(yīng)的點(diǎn)的處理也要記錄下來(lái),把這些組成的文件稱為測(cè)試點(diǎn)文件,通過(guò)測(cè)試點(diǎn)文件可以生成各種合理的測(cè)試方案,使得測(cè)試盡量能夠走遍程序中的所有點(diǎn),只有這樣才能表示測(cè)試的成功。這個(gè)記錄文件就相當(dāng)于畫面設(shè)計(jì)書一樣,測(cè)試是交互進(jìn)行的,并不是各自測(cè)試自己的程序,盡管如此,通過(guò)測(cè)試點(diǎn)文件對(duì)方仍能夠知道程序執(zhí)行的具體流程,所以在這個(gè)測(cè)
46、試中仍然是白盒測(cè)試。在單元測(cè)試都完成之后,再進(jìn)行系統(tǒng)的集成測(cè)試。集成測(cè)試包括兩種方法,一是先測(cè)試每個(gè)模塊,再把所有模塊按照設(shè)計(jì)的要求組合成所要的程序,這種方法成為非漸增式測(cè)試方法,另一個(gè)是把下一個(gè)要測(cè)試的模塊同已測(cè)試好的那些模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完成之后再把下一個(gè)要測(cè)試的模塊結(jié)合起來(lái)進(jìn)行測(cè)試。這種每次增加一個(gè)模塊的方法為漸增式測(cè)試。5.2.1常見錯(cuò)誤編完程序后,最后一步就是對(duì)系統(tǒng)進(jìn)行測(cè)試。本網(wǎng)上訂餐系統(tǒng)主要是用Java語(yǔ)言編寫的,最常見的錯(cuò)誤是出現(xiàn)異常。1)語(yǔ)法錯(cuò)誤:它是由錯(cuò)誤的腳本語(yǔ)法引起的,如:命令的拼寫錯(cuò)誤或傳遞函數(shù)的參數(shù)值錯(cuò)誤。2)運(yùn)行時(shí)錯(cuò)誤:運(yùn)行時(shí)錯(cuò)誤是發(fā)生在程序開始執(zhí)行之后,它
47、是由試圖執(zhí)行不可能操作的程序所引起的。3)邏輯錯(cuò)誤:邏輯錯(cuò)誤是最難發(fā)現(xiàn)的錯(cuò)誤。通常邏輯錯(cuò)誤是由輸入錯(cuò)誤或程序邏輯上的缺陷引起的,程序運(yùn)行沒有問(wèn)題,但運(yùn)行的結(jié)果卻不正確。5.2.2測(cè)試的方法依據(jù)前面所說(shuō)的測(cè)試對(duì)象,我們把測(cè)試劃分為幾個(gè)方面來(lái)進(jìn)行測(cè)試。1)界面測(cè)試界面測(cè)試是測(cè)試過(guò)程中比較簡(jiǎn)單直觀的一種測(cè)試方法,只要細(xì)心地按界面要求核對(duì)就行了??蛇@一塊內(nèi)容往往是程序開發(fā)人員最容易忽視和遺漏的地方,也是常常出Bug的地方。下面是界面測(cè)試中經(jīng)常出現(xiàn)的幾種Bug:錯(cuò)別字,即界面中的標(biāo)題或者文本內(nèi)容中出現(xiàn)了錯(cuò)別字。這種Bug如果測(cè)試人員不細(xì)心,很難找出來(lái),可能會(huì)出現(xiàn)在提示信息或界面中。出現(xiàn)了一些根本讀不懂的
48、內(nèi)容,一般多出現(xiàn)在程序的提示信息和一些較長(zhǎng)的文本中。這種情況基本上出現(xiàn)在拼起來(lái)顯示的提示中,頁(yè)面的簡(jiǎn)單陳述是通過(guò)變量拼組起來(lái)的,通過(guò)程序?qū)⒆忠粋€(gè)一個(gè)地輸出來(lái)。通常是因?yàn)槌绦蛑械目刂棋e(cuò)誤或是程序開發(fā)人員對(duì)程序沒有進(jìn)行認(rèn)真的自測(cè),導(dǎo)致出現(xiàn)這種Bug。頁(yè)面類似的內(nèi)容中,明顯有字體,字號(hào)不同的情況,使界面整體風(fēng)格看上去不一致,這種情況只出現(xiàn)在沒有CSS定義的情況下,或是已經(jīng)定義的CSS,在開發(fā)過(guò)程中沒有調(diào)用。標(biāo)題相近的程序及模塊,把標(biāo)題弄混。這種情況多是因?yàn)闃I(yè)務(wù)方面的定義名稱很相似或很類似,并且業(yè)務(wù)實(shí)體方面也很類似,開發(fā)人員在開發(fā)過(guò)程中忽略了開發(fā)名稱和模塊,只單獨(dú)地實(shí)現(xiàn)其功能。2)功能測(cè)試顧名思義,功
49、能測(cè)試主要是測(cè)試程序模塊是否實(shí)現(xiàn)了設(shè)計(jì)中所有要求的功能。功能測(cè)試中需要注意的有:訂餐功能中,有關(guān)于訂餐時(shí)間有一些常識(shí)性的問(wèn)題,比如:閏年中二月的天數(shù)。關(guān)于后臺(tái)修改各種信息功能的測(cè)試,主要是看修改確認(rèn)后是否數(shù)據(jù)真正已被修改了。這是最基本的功能,需要注意的是是否把不應(yīng)該修改的數(shù)據(jù)也被修改成功了。3)需求測(cè)試需求測(cè)試是測(cè)試中很重要的一個(gè)環(huán)節(jié)。因?yàn)樾枨笫擒浖O(shè)計(jì),開發(fā)乃至軟件測(cè)試中最重要的依據(jù)。要針對(duì)需求測(cè)試,首先就要對(duì)項(xiàng)目的需求和業(yè)務(wù)有一定的了解。這些需求很多時(shí)候是在實(shí)現(xiàn)增、刪、查、改,這些基本功能之上,結(jié)合項(xiàng)目和相關(guān)業(yè)務(wù)所作的一些邏輯上的控制,這就要求程序員在設(shè)計(jì)和編碼的時(shí)候要去充分理解考慮需求。
50、4)性能測(cè)試性能測(cè)試在軟件的質(zhì)量保證中起著重要的作用。通常我們把性能指標(biāo)全部歸結(jié)到硬件,操作系統(tǒng)和開發(fā)環(huán)境上,而忽略了代碼本身性能上的考慮。性能需求指標(biāo)中,穩(wěn)定性,并行訪問(wèn)支撐能力以及安全性都很重要,作為程序員需要評(píng)估該模塊在系統(tǒng)運(yùn)行中所處的環(huán)境,將要受到的負(fù)荷壓力以及各種潛在的危險(xiǎn)和惡意攻擊的可能性。5.3界面測(cè)試千百味訂餐系統(tǒng)提供了用戶登錄、忘記密碼、查看菜品、加入購(gòu)物車、購(gòu)物車結(jié)算等功能。用戶登陸模塊測(cè)試忘記密碼模塊測(cè)試如果用戶忘記了登陸密碼可以直接點(diǎn)擊忘記密碼,出現(xiàn)如下界面:查看菜品模塊測(cè)試在登陸成功后我們會(huì)看見如下界面:界面上顯示出各個(gè)菜品的分類,分別點(diǎn)擊各個(gè)菜品分類,會(huì)彈出對(duì)話框顯
51、示出各個(gè)分類里的菜品名稱。如下圖所示:加入購(gòu)物車模塊測(cè)試用戶在選中自己喜歡的菜品以后可以用鼠標(biāo)單擊選中,單擊確定后出現(xiàn)如下界面:?jiǎn)螕舸_定后退出,訂購(gòu)的菜品便放入到購(gòu)物車中,單擊總價(jià),便出現(xiàn)如下界面:?jiǎn)螕舸_定后返回主界面,訂餐過(guò)程完成。5.4測(cè)試結(jié)論系統(tǒng)測(cè)試和系統(tǒng)設(shè)計(jì)是同步的,下面是我的一些測(cè)試的經(jīng)驗(yàn)教訓(xùn)。首先,我們可以運(yùn)行,如果運(yùn)行沒有問(wèn)題的話,就會(huì)有頁(yè)面出現(xiàn)。但是,如果代碼有錯(cuò)誤的話,頁(yè)面會(huì)出現(xiàn)錯(cuò)誤的提示。并會(huì)告訴你在哪一行出錯(cuò)及出錯(cuò)的原因。這樣的話,我們根據(jù)它的提示,可以更改。其次,我們?cè)诖蜷_的頁(yè)面是正常的,但是不能達(dá)到預(yù)期的效果,這個(gè)就需要我們認(rèn)真看代碼了,并根據(jù)我們功能要求對(duì)其實(shí)現(xiàn)的代
52、碼進(jìn)行分析,通過(guò)查閱書籍和網(wǎng)上搜尋資料來(lái)解決問(wèn)題。這個(gè)是最難處理的,但是也是鍛煉我們編程能力的捷徑。結(jié)束語(yǔ)畢業(yè)設(shè)計(jì)是對(duì)我們每名學(xué)生智力、毅力的一次艱巨考驗(yàn),是對(duì)我們每名學(xué)生知識(shí)體系的一次豐富升華,是對(duì)我們每名學(xué)生整個(gè)大學(xué)的學(xué)習(xí)成果的一次檢驗(yàn)。在畢業(yè)設(shè)計(jì)過(guò)程中,既有成功的喜悅,也有失敗的苦惱;既學(xué)習(xí)了大量新知識(shí),又對(duì)很多舊知識(shí)進(jìn)行了提煉升華;既有個(gè)人努力,又有團(tuán)隊(duì)協(xié)作;既得到了同學(xué)們的幫助,又得到了老師的指導(dǎo)。這種經(jīng)歷彌足珍貴。由于是第一次開發(fā)這種Java應(yīng)用系統(tǒng),可能還有很多不足之處。所以只有匆匆忙忙地從圖書管理借來(lái)大量基于Java系統(tǒng)設(shè)計(jì)方面的書籍,希望通過(guò)參閱各種關(guān)于系統(tǒng)設(shè)計(jì)的書籍充分了解
53、系統(tǒng)開發(fā)的基本流程、總體布局設(shè)計(jì)以及系統(tǒng)開發(fā)前所需的一些準(zhǔn)備工作,做到心中有數(shù)。然而,由于實(shí)在是經(jīng)驗(yàn)有限,雖然書本上介紹了許多這方面的知識(shí)和操作方法,但是畢竟還是限于理論方面的,所以理解起來(lái)比較困難,一切都是按自己的摸索來(lái)構(gòu)建。這次經(jīng)歷之后希望之后再設(shè)計(jì)其他類型軟件的時(shí)候能夠推陳出新,在這次的基礎(chǔ)上有所改善,做得更好。致 謝非常感謝我的指導(dǎo)老師:譚征老師。他平易近人還很幽默,在畢業(yè)設(shè)計(jì)的開始階段,譚征老師給我指明了設(shè)計(jì)的方向及規(guī)范。在設(shè)計(jì)出系統(tǒng)后,又及時(shí)的給我檢測(cè)提出指導(dǎo)意見。他認(rèn)真細(xì)心地評(píng)閱了我的論文初稿,并給出了具體修改建議。非常感謝負(fù)責(zé)熱心的孫曦老師,她是一名對(duì)學(xué)生負(fù)責(zé)的好老師,時(shí)時(shí)刻刻
54、為學(xué)生著想,努力幫助我們協(xié)調(diào)二專業(yè)和本專業(yè)之間的各項(xiàng)事務(wù),讓我們能夠合理地分配自己的時(shí)間精力。非常感謝和藹可親的李凱里老師,他給我設(shè)計(jì)的系統(tǒng)提出了建設(shè)性的建議,指出了該系統(tǒng)存在的不足,并向作為二專業(yè)學(xué)生的我耐心的解釋了畢業(yè)論文的規(guī)范。非常感謝在設(shè)計(jì)的過(guò)程中幫助過(guò)我的同學(xué)和朋友,在他們的幫助下我才成功地連接了數(shù)據(jù)庫(kù)。有些功能是借鑒從網(wǎng)上下載的論文后經(jīng)過(guò)一定的修改而成的,在此向網(wǎng)上幫助我的朋友說(shuō)聲謝謝?,F(xiàn)在馬上就要離開生活四年的大學(xué)校園了,我應(yīng)該感謝大學(xué)四年曾給我們帶過(guò)課程的各位老師,謝謝你們。沒有你們大學(xué)這幾年的教導(dǎo),我是不能適應(yīng)社會(huì)的激烈競(jìng)爭(zhēng)的,再次謝謝你們。參考文獻(xiàn)1 張峰.JAVA進(jìn)階訣竅
55、.清華大學(xué)出版社.2009-01.2 MySQL公司. MySql中文幫助文檔M.頁(yè)面文檔.2006-02-11.3 吳其東.JAVA模塊設(shè)計(jì)實(shí)例經(jīng)典.北京:冶金工業(yè)出版社.2004-06.4 李世祥.Struts框架應(yīng)用與開發(fā)M.東軟電子出版社.2002-06-09.5 陳天河.Hibernate項(xiàng)目開發(fā)寶典M.電子工業(yè)出版社.2004-03-23.6 劉升華等.Java從入門到實(shí)踐.北京:清華大學(xué)出版社.2009-09-01.7 良葛格.Java學(xué)習(xí)筆記(第一版).北京:清華大學(xué)出版社.2006-08.8 葉志軍等.由淺入深-Java2自學(xué)教程.北京:人民郵電出版社.2004-10.附錄本
56、系統(tǒng)共包含9個(gè)源文件,程序代碼如下:文件一:dbm.hpackage com.ccit;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBM public static DBM instance=null; Connection con=null; private DBM() try Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql:/localhost:3306/l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 世界無(wú)車日活動(dòng)倡議書(14篇)
- 重陽(yáng)節(jié)講話稿
- 分?jǐn)?shù)的基本性質(zhì)教學(xué)設(shè)計(jì)
- 繼承房屋買賣協(xié)議書(31篇)
- 物業(yè)消防逃生演練方案(3篇)
- 幼兒園吃的教案7篇
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 2024年工程勞務(wù)分包合同范本
- 買車是否需要購(gòu)車合同范例
- 專職消防員服務(wù)合同范例
- 2024中國(guó)郵政集團(tuán)限公司甘肅省分公司校園招聘(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- DL-T+961-2020電網(wǎng)調(diào)度規(guī)范用語(yǔ)
- 鋼琴調(diào)律合同模板
- 倉(cāng)儲(chǔ)管理員勞動(dòng)合同范本
- 2005版勞動(dòng)合同范本
- 中國(guó)醫(yī)美行業(yè)2024年度洞悉報(bào)告-德勤x艾爾建-202406
- 2024年風(fēng)景園林專業(yè)中級(jí)職稱《法律法規(guī)及技術(shù)標(biāo)準(zhǔn)》考試題庫(kù)(含答案)
- DL-T2337-2021電力監(jiān)控系統(tǒng)設(shè)備及軟件網(wǎng)絡(luò)安全技術(shù)要求
- 2024勞動(dòng)合同模板下載
- 聲屏障結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)(全面修訂征求意見稿)
- 大學(xué)生紅色旅游調(diào)查報(bào)告總結(jié)
評(píng)論
0/150
提交評(píng)論