jsp藥品進(jìn)銷存管理系統(tǒng)mysql-mybatis論文_第1頁
jsp藥品進(jìn)銷存管理系統(tǒng)mysql-mybatis論文_第2頁
jsp藥品進(jìn)銷存管理系統(tǒng)mysql-mybatis論文_第3頁
jsp藥品進(jìn)銷存管理系統(tǒng)mysql-mybatis論文_第4頁
jsp藥品進(jìn)銷存管理系統(tǒng)mysql-mybatis論文_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

太原理工大學(xué)畢業(yè)設(shè)計(論文)用紙.緒論1.1本課題的研究背景網(wǎng)購越來越成為當(dāng)代人們所熱衷的一種購物形式。在近幾年內(nèi),淘寶、58同城這類的網(wǎng)站迅速崛起,也就意味著網(wǎng)購必將成為一種風(fēng)尚。但是目前為止,大部分新興起來的購物網(wǎng)站都是基于服飾、化妝品一類的,在醫(yī)藥品一類還處于劣勢。究其根本,人們對醫(yī)藥管理的安全性以及有效性還有一部分的顧慮之情,畢竟藥品的安全性與我們的身體健康有著極其緊密的聯(lián)系。所以,一個高效的、安全的醫(yī)藥管理系統(tǒng),將會推動醫(yī)藥網(wǎng)站達(dá)到一個新的高度。對于患者而言:一方面,隨著現(xiàn)代生活越來越信息化,人們患了一些常見的疾病往往不會再選擇去醫(yī)院排長長的隊伍去掛號看病、買藥,而是選擇上網(wǎng)搜索有無大礙,若無嚴(yán)重癥狀就自己買一些像阿莫西林一類的非處方藥物來治療。另一方面,網(wǎng)購既方便又實(shí)惠,同時可以直接查看詳細(xì)的藥品詳情。對于銷售方而言:一方面,可以簡化一直以來繁瑣的人工管理記錄的方式,使管理工作更加有條不紊的進(jìn)行。另一方面,可以隨時查看藥品的銷售狀況以及各大廠家的供應(yīng)貨物情況。如今人們大多還是比較信賴在藥店購買藥品,認(rèn)為藥店的藥品更加安全,信譽(yù)更加可靠,這就加大了我們推崇網(wǎng)購藥品的難度。于是,我們必須使其管理條理化、規(guī)范化,增強(qiáng)我們的可信度,排除買家的顧慮。隨著科技信息的步步發(fā)展,管理系統(tǒng)必將滲透于各個領(lǐng)域,如果不想被時代淘汰就必須緊跟科技發(fā)展的腳步,這也就意味著一套高效、可靠的管理機(jī)制必將深受消費(fèi)者以及管理者的喜愛與推崇。1.2國內(nèi)外研究現(xiàn)狀在信息飛速發(fā)展的當(dāng)代,人們從日常生活到工作都在利用網(wǎng)絡(luò)進(jìn)行一些信息查詢和信息管理。國內(nèi)外各大企業(yè)更是越來越重視信息的管理,這為他們帶來了成本的極大節(jié)約,以及管理的進(jìn)一步規(guī)范化、系統(tǒng)化,使得管理更加的具有高效性、靈活性。這不僅提高了流程的可視化,更加提高了工作效率。隨著網(wǎng)絡(luò)的一步步普及以及其迅猛的發(fā)展,如今,信息技術(shù)在國際管理市場上占據(jù)了越來越重要的位置,逐步演變成了對各國經(jīng)濟(jì)、科技和社會發(fā)展情況的直觀體現(xiàn)。正如一九八八年九月五日,鄧小平提出的“科學(xué)技術(shù)是第一生產(chǎn)力”,就反映了在中國越來越重視科技的現(xiàn)狀。管理模式越來越信息化將成為一種必然趨勢,但是由于我國在信息化道路上起步較晚,信息管理系統(tǒng)技術(shù)相對落后,使用范圍有所局限,功能不夠完善等原因,研究并開發(fā)出一套相對較完善的管理系統(tǒng),就成了當(dāng)務(wù)之急。1.3本課題的主要工作人們除了關(guān)注藥品的藥理反應(yīng)外,最注重的就是藥品的保質(zhì)期,這種現(xiàn)象同樣出現(xiàn)在銷售方,不合理的信息管理會導(dǎo)致藥品的浪費(fèi)。由于其較一般商品而言,具有時效性強(qiáng)、規(guī)律性差、容易損耗等特點(diǎn)。各個銷售方為了保證適應(yīng)所有季節(jié)性的、常見的疾病下,很難避免出現(xiàn)相應(yīng)產(chǎn)品供應(yīng)不足或一些藥品供遠(yuǎn)大于求的情況,究其根本,就是信息管理不合理,沒有在適當(dāng)時候做出調(diào)整。綜上所述,本課題擬設(shè)計一個藥品進(jìn)銷存管理系統(tǒng),用以將一些變動直觀的展示給管理者,同時也方便其對信息進(jìn)行簡單的控制以及調(diào)整,節(jié)約人力,是管理系統(tǒng)化,信息化。主要實(shí)現(xiàn)的功能包括以下幾點(diǎn):1.訂單管理:根據(jù)用戶對藥品的購買情況對后臺數(shù)據(jù)進(jìn)行自動更新庫存信息的操作;2.用戶信息管理:管理用戶的姓名、性別、密碼等基本信息;3.入庫信息管理:根據(jù)具體情況藥品進(jìn)貨情況,對庫存中的藥品信息進(jìn)行添加,并生成入庫信息單;4.供應(yīng)廠家信息管理:可以查看相應(yīng)廠家的地址、聯(lián)系人等詳情;5.藥品信息管理:管理庫存中現(xiàn)存藥品的類別等藥品信息的管理。1.4目的和意義隨著藥品經(jīng)濟(jì)與技術(shù)的發(fā)展,人們對藥品的需求也進(jìn)一步擴(kuò)大,醫(yī)藥行業(yè)從古至今在社會各領(lǐng)域中一直處于一個相對穩(wěn)定且必不可少的重要地位。這就導(dǎo)致新醫(yī)院和藥店的迅速增加,要想在競爭激烈的時代里獲得一席之地,就要與時俱進(jìn),在原有傳統(tǒng)的管理模式下進(jìn)行改革,即使管理信息化,以達(dá)到管理規(guī)范化、系統(tǒng)化等。提高運(yùn)營效率、信息處理速度、信息處理精準(zhǔn)度等,最大限度的減少人為因素造成的信息缺失、不準(zhǔn)確等錯誤。2.開發(fā)工具及技術(shù)2.1開發(fā)工具頁面設(shè)計初期使用Dreamweaver進(jìn)行的設(shè)計,后期轉(zhuǎn)換格式為Jsp。后臺設(shè)計主要使用MyEclipse以及其所包含的后臺服務(wù)器Tomcat完成。數(shù)據(jù)庫使用Mysql數(shù)據(jù)庫進(jìn)行表的創(chuàng)建以及數(shù)據(jù)的添加等。下面對上述內(nèi)容進(jìn)行簡要說明。MyEclipseMyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是一個非常優(yōu)質(zhì)的用于開發(fā)Java、J2EE等的Eclipse插件的集合,是對EclipseIDE的一個擴(kuò)展。它是功能非常豐富的JavaEE集成開發(fā)環(huán)境,包含了完備的編碼、調(diào)試、測試和發(fā)布功能。同時MyEclipse具有完善的功能,廣泛的支持平臺(完整支持HTML,JSP,CSS,Javascript,SQL)。在對于數(shù)據(jù)庫和JavaEE的開發(fā)以及對應(yīng)用程序服務(wù)器的開發(fā)上面都提高了我們的工作效率。TomcatTomcat是一個應(yīng)用服務(wù)器,與其他服務(wù)器相比它具有小型輕量級的特點(diǎn)。在對其進(jìn)行運(yùn)行時,它實(shí)際上是作為一個獨(dú)立的進(jìn)程而運(yùn)行的??梢赃@樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apahce服務(wù)器,可利用它來對HTML頁面的訪問請求進(jìn)行響應(yīng)。實(shí)際上它是對Apache服務(wù)器的擴(kuò)展,但與之不同的是它是可以獨(dú)立運(yùn)行的。它在一些中小型的系統(tǒng)中和并發(fā)訪問用戶不多的場合下被廣泛的使用,是開發(fā)和調(diào)試JSP程序的首選工具。MysqlMysql是使用C語言和C++語言編寫的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),并且使用了多種編譯器進(jìn)行測試,從而保證了源代碼的可移植性;第二它的具有很廣泛的支持平臺,比如:支持Linux、MacOS、OpenBSD、Solaris、Windows等多種操作系統(tǒng);第三它為多種編程語言提供了API;第四支持多線程,可以充分利用CPU資源;第五提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接的途徑;第六可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。對于一般的使用者,它所具備的功能已經(jīng)很完善了。所以,我們在此選用MySql來操作數(shù)據(jù)庫。開發(fā)技術(shù)2.2.1JSP JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。實(shí)現(xiàn)網(wǎng)頁邏輯與網(wǎng)頁設(shè)計的顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng),多樣化和功能強(qiáng)大的開發(fā)工具支持以及支持服務(wù)器端組件等的特點(diǎn)。2.2.2MyBatisMyBatis是一個支持一般的SQL查詢、存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis幾乎取消了所有繁瑣的JDBC代碼、直接手工設(shè)置的參數(shù)和對于結(jié)果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和普通的Java對象映射成數(shù)據(jù)庫中的一條一條的記錄。其最大的優(yōu)勢就是它的動態(tài)語句功能,它免除了使用JDBC對SQL語句嚴(yán)謹(jǐn)?shù)母袷揭?guī)范(如何處加空格,何處加逗號等),從而方便程序設(shè)計人員對數(shù)據(jù)庫繁瑣的操作。2.2.3JavaScriptJavaScript是一種基于對象和事件驅(qū)動并且具有相對安全性的客戶端腳本語言。同時也是一個廣泛用于客戶端Web開發(fā)的客戶端腳本語言。在HTML網(wǎng)頁中經(jīng)常會添加JavaScript腳本語言來實(shí)現(xiàn)頁面的動態(tài)效果。比如對用戶的鼠標(biāo)點(diǎn)擊、鼠標(biāo)移動等操作進(jìn)行響應(yīng)。JavaScript有一個十分重要特性就是面向?qū)ο?,通過基于對象的程序設(shè)計,可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開發(fā)交互式Web網(wǎng)頁。Javascript的出現(xiàn)使得網(wǎng)頁和用戶之間建立了一種實(shí)時性的、動態(tài)的、交互性的關(guān)系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了javascript技術(shù),比如說,檢驗用戶輸入的信息是否有效,賬號信息是否重復(fù),是否為空等等。2.2.4jQuery以及jQueryEasyUIjQuery是一套跨瀏覽器的JavaScript庫,簡化HTML與JavaScript之間的操作。目前已有將近59%使用了jQuery,是目前最受歡迎的JavaScript庫。

jQueryEasyUI是一組基于jQuery的UI插件集合體。開發(fā)人員在對css以及html沒有很深入了解的前提下,只需要知道一些簡單的html常用標(biāo)簽,就可以輕松的寫出一個界面美觀、功能豐富的UI界面,避免了編寫復(fù)雜的javascript代碼,使工作更便捷高效。軟硬件需求1.硬件需求:CPU:Pentium以上計算機(jī)內(nèi)存:512M以上2.軟件需求:操作系統(tǒng)版本:WindowsXP/vista/Win7開發(fā)工具:MyEclipse2013后臺服務(wù)器:ApacheTomcat7.0開發(fā)語言:Java數(shù)據(jù)庫:MySQL3.需求分析需求調(diào)研由于信息管理中,難免有一些人為錯誤的出現(xiàn),為了最大限度的減少人為錯誤,提高工作效率,而設(shè)計一套完整的藥品進(jìn)銷存管理系統(tǒng),實(shí)現(xiàn)對藥品信息的錄入、更改的規(guī)范化、系統(tǒng)化以及對相應(yīng)藥品的供應(yīng)商的信息進(jìn)行嚴(yán)格的錄入,避免在藥品進(jìn)出庫問題上產(chǎn)生不必要的糾紛等??尚行苑治鰹榱吮苊庖驗橐恍┟篮玫磺袑?shí)際的想法,而造成時間上面的以及資源上面的浪費(fèi),在統(tǒng)籌去做一個項目之前,需要進(jìn)行可行性分析報告。下面主要從以下四個方面來進(jìn)行論述。3.2.1技術(shù)的可行性藥品進(jìn)銷存管理系統(tǒng)針對于普通用戶的前臺界面可以通過Dreamweaver來實(shí)現(xiàn),用Jsp進(jìn)行完善并實(shí)現(xiàn)靜態(tài)頁面以及一部分的動態(tài)。針對于管理員以及超級管理員的管理頁面,用jQueryEasyUI來實(shí)現(xiàn)。后臺的制作可以使用MyEclipse和Mysql數(shù)據(jù)庫。開發(fā)語言使用Java語言。利用MyEclipse可是實(shí)現(xiàn)前臺和后臺的交互,Mysql可以存儲我們所需要的藥品數(shù)據(jù)、用戶數(shù)據(jù)、廠家數(shù)據(jù)、訂單數(shù)據(jù)、入庫單數(shù)據(jù)等。總體設(shè)計難度不大。在大學(xué)期間,學(xué)習(xí)過相應(yīng)的Java、UML、Web等基礎(chǔ)課程,并在以前做過一些類似的項目,具備相應(yīng)的系統(tǒng)分析、設(shè)計以及測試的能力。就此看來,完成該項目在技術(shù)上具有可行性。經(jīng)濟(jì)的可行性藥品進(jìn)銷存管理系統(tǒng),需要的隱私數(shù)據(jù)并不多,并且由于是面向大多數(shù)對計算機(jī)并不熟悉的人群,必然要求操作簡單,以可以提高數(shù)據(jù)的管理難度和速度,從而不需要太高的軟硬件配置。綜上所述,項目難度系數(shù)不高,要求并不復(fù)雜,故其成本本身就不會很高。再從長遠(yuǎn)的角度分析,它所帶來的利益、便捷遠(yuǎn)遠(yuǎn)超過其所需成本。就此看來,完成該項目在經(jīng)濟(jì)上具有可行性。3.2.3操作可行性藥品進(jìn)銷存管理系統(tǒng),主要針對無相應(yīng)技術(shù)的工作者(只需要具備電腦的一般操作能力),功能一目了然,操作技術(shù)含量低,簡單容易操作。在使用之前,只需要花一小部分時間熟悉界面以及了解大致功能,便可以運(yùn)用自如。就此來看,完成該項目在操作上具有可行性。3.2.4法律的可行性藥品進(jìn)銷存管理系統(tǒng),存儲的主要信息是面對藥品的。從存儲的數(shù)據(jù)來講,由于均是藥品信息的一些名稱、市場價格等,并不會存在法律侵權(quán)的問題,故具有法律可行性。從開發(fā)的角度來講,本系統(tǒng)主要使用的MyEclipse軟件開發(fā)環(huán)境進(jìn)行開發(fā),是開源代碼,Mysql數(shù)據(jù)庫也是開源代碼,所以不存在法律上的侵權(quán)問題。就此來看,完成該項目在法律上具有可行性。綜上所述,設(shè)計一個藥品進(jìn)銷存管理系統(tǒng)是必要可行的。系統(tǒng)用戶用例圖1.普通用戶用例圖如圖3-1所示:圖3-1普通用戶用例圖2.管理員用例圖如圖3-2所示:圖3-2管理員用例圖3.超級管理員用例圖如圖3-3所示:圖3-3超級管理員用例圖功能需求本系統(tǒng)將實(shí)現(xiàn)以下基本功能:1.整潔簡單的頁面,操作簡單便捷;2.普通用戶具有查看藥品詳情、購買、查看購物車、查看訂單、登陸、注冊、修改個人信息除了個人權(quán)限等功能;3.管理員用戶具有藥品信息管理、入庫信息管理、廠家信息管理、查看用戶信息和訂單信息、修改個人信息除了個人權(quán)限等功能;4.超級管理員用戶具有藥品信息管理、入庫信息管理、廠家信息管理、用戶信息管理和訂單信息管理等功能;5.安全性較強(qiáng),可以避免用戶的惡意操作,并作出相應(yīng)的提醒。3.4.1用戶功能模塊圖說明1.用戶信息修改模塊:普通用戶通過前臺主頁的用戶信息修改按鈕,可以對用戶名、密碼、性別、年齡等個人信息的進(jìn)行更改,但不包括個人權(quán)限;2.注冊模塊:在該模塊中定義了要錄入用戶信息的各種框架,其功能是讓用戶完成個人信息填寫,以錄入數(shù)據(jù)庫;3.登陸模塊:普通用戶通過登錄頁面可以直接跳轉(zhuǎn)到系統(tǒng)主頁面,從而具有對藥品查看以及購買等的權(quán)限;4.管理購物車模塊:在該模塊中定義了用戶需要購買的藥品信息,其功能是記錄用戶需要購買的藥品信息,并對其進(jìn)行增加藥品或者刪除藥品的操作;5.購買藥品模塊:在該模塊中定義了要購買藥品的價格、名稱等,其功能是完成購買藥品并且生成訂單操作;6.查看藥品信息模塊:在該模塊中定義了藥品的編號、名稱等基本信息,其功能是方便用戶對藥品的了解。普通用戶功能模塊圖如圖3-4所示:用戶信息修改用戶信息修改注冊登陸管理購物車購買藥品查看藥品信息增加藥品刪除藥品普通用戶圖3-4普通用戶功能模塊圖3.4.2管理員功能模塊圖說明1.管理員信息修改模塊:普通管理員通過前臺主頁的用戶信息修改按鈕,可以對用戶名、密碼、性別、年齡等個人信息的進(jìn)行更改,但不包括個人權(quán)限;2.登陸模塊:普通管理員通過登錄頁面可以直接跳轉(zhuǎn)到系統(tǒng)管理頁面,從而具有對廠家信息、藥品信息以及入庫信息的可讀可寫權(quán)限,對用戶信息和訂單信息只有可讀權(quán)限;3.用戶信息查看模塊:該模塊中定義了注冊用戶的基本信息,普通管理員對用戶信息只有查看的權(quán)限;4.訂單信息查看模塊:該模塊中定義了用戶下單后的信息,普通管理員對用戶的訂單信息也只有查看的權(quán)限;5.廠家信息管理模塊:該模塊中定義了供應(yīng)廠家的基本信息,其功能方便管理員是對廠家的名稱、地址、聯(lián)系人等進(jìn)行相應(yīng)的增刪改查操作;6.藥品信息管理模塊:該模塊中定義了庫存藥品的基本信息,其功能方便管理員是對庫存中藥品信息進(jìn)行增刪改查操作;7.入庫信息管理模塊:該模塊中定義了藥品以及相應(yīng)供應(yīng)商的基本信息,其功能是對進(jìn)貨的信息進(jìn)行增刪改查操作。管理員功能模塊圖如圖3-5所示:管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息查看藥品信息增加藥品信息刪除藥品信息藥品廠家管理修改廠家信息查看廠家信息增加廠家信息刪除廠家信息入庫信息管理修改入庫信息查看入庫信息增加入庫信息刪除入庫信息管理員信息修改登陸管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息查看藥品信息增加藥品信息刪除藥品信息藥品廠家管理修改廠家信息查看廠家信息增加廠家信息刪除廠家信息入庫信息管理修改入庫信息查看入庫信息增加入庫信息刪除入庫信息管理員信息修改登陸管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息查看藥品信息增加藥品信息刪除藥品信息藥品廠家管理修改廠家信息查看廠家信息增加廠家信息刪除廠家信息入庫信息管理修改入庫信息查看入庫信息增加入庫信息刪除入庫信息管理員信息修改登陸管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息查看藥品信息增加藥品信息刪除藥品信息藥品廠家管理修改廠家信息查看廠家信息增加廠家信息刪除廠家信息入庫信息管理修改入庫信息查看入庫信息增加入庫信息刪除入庫信息管理員信息修改登陸管理員用戶用戶信息查看訂單信息查看藥品信息管理修改藥品信息查看藥品信息增加藥品信息刪除藥品信息藥品廠家管理修改廠家信息查看廠家信息增加廠家信息刪除廠家信息入庫信息管理修改入庫信息查看入庫信息增加入庫信息刪除入庫信息管理員信息修改登陸圖3-5管理員功能模塊圖3.4.3超級管理員功能模塊圖說明1.超級管理員信息修改模塊:超級管理員通過前臺主頁的用戶信息修改按鈕,可以對用戶名、密碼、性別、年齡以及個人權(quán)限等個人信息的進(jìn)行更改;2.登陸模塊:超級管理員通過登錄頁面可以直接跳轉(zhuǎn)到系統(tǒng)管理頁面,從而具有對廠家信息、藥品信息、用戶信息、訂單信息以及入庫信息的可讀可寫權(quán)限;3.用戶信息管理模塊:該模塊中定義了注冊用戶的基本信息,其功能是對用戶信息進(jìn)行增刪改查等操作;4.訂單信息管理模塊:該模塊中定義了用戶下單后的信息,其功能是方便超級管理員對用戶的訂單的信息進(jìn)行增刪改查等操作;5.廠家信息管理模塊:該模塊中定義了供應(yīng)廠家的基本信息,其功能方便管理員是對廠家的名稱、地址、聯(lián)系人等進(jìn)行相應(yīng)的增刪改查操作;6.藥品信息管理模塊:該模塊中定義了庫存藥品的基本信息,其功能方便管理員是對庫存中藥品信息進(jìn)行增刪改查操作;7.入庫信息管理模塊:該模塊中定義了藥品以及相應(yīng)供應(yīng)商的基本信息,其功能是對進(jìn)貨的信息進(jìn)行增刪改查操作。超級管理員功能模塊圖如圖3-6所示:超級管理員超級管理員藥品信息管理增刪改查藥品信息入庫信息管理增刪改查入庫信 用戶信息管理增刪改查用戶信 訂單信息管理增刪改查訂單信 修改超級管理員信息廠家信息管理增刪改查廠家信息登陸圖3-6超級管理員功能模塊圖設(shè)計的基本思想1.采用B/S模式(即瀏覽器/服務(wù)器模式)進(jìn)行系統(tǒng)的開發(fā)。由于它是和瀏覽器相關(guān)的,故再系統(tǒng)開發(fā)、維護(hù)和升級方面對十分方便,只要有瀏覽器的用戶都可以訪問(開放性強(qiáng))。由于現(xiàn)今用戶均使用瀏覽器進(jìn)行日常操作,對其操作也比較了解,在一定程度上方便了用戶的操作。2.采用面向?qū)ο蟮拈_發(fā)與設(shè)計理念。將具有一定規(guī)律的對象封裝為一個類,即對整體系統(tǒng)進(jìn)行抽象,從而保證較強(qiáng)的易用性、可維護(hù)性以及穩(wěn)定性。并且在一定程度上提高了開發(fā)的效率。3.采用模塊化設(shè)計。模塊化設(shè)計要求將整個系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設(shè)計和實(shí)現(xiàn)過程。4.簡單方便的系統(tǒng)界面。設(shè)計簡單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。5.設(shè)計既要突出重點(diǎn),又要細(xì)致周到。要符合設(shè)計需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。性能需求為了保證藥品進(jìn)銷存管理系統(tǒng)可以長期、穩(wěn)定、高效的運(yùn)行,應(yīng)該盡可能滿足一下幾點(diǎn)要求:1.準(zhǔn)確性系統(tǒng)需要對接收到的信息進(jìn)行準(zhǔn)確的處理。數(shù)據(jù)之間的聯(lián)系必須準(zhǔn)確無誤,這決定了該系統(tǒng)的可用性、高效性。從而應(yīng)該在采用一定的方法來盡可能保證系統(tǒng)數(shù)據(jù)的準(zhǔn)確性。2.及時性一個好的系統(tǒng),必然運(yùn)行順暢。當(dāng)用戶提交某種請求時,系統(tǒng)需要及時對用戶的需求做出合理的響應(yīng),以免耽誤用戶的時間,消耗用戶的耐心。最終造成系統(tǒng)的用戶量流失,系統(tǒng)的高效性受到質(zhì)疑。3.易用性藥品管理系統(tǒng)主要針對沒有很好專業(yè)技能的用戶,故易用性是不可或缺的重要特性。這就要求我們的系統(tǒng)給用戶提供一個良好的接口,用于實(shí)現(xiàn)人機(jī)交互。權(quán)限需求藥品進(jìn)銷存管理系統(tǒng)需要在各用戶權(quán)限上進(jìn)行嚴(yán)格的劃分。只有在該系統(tǒng)注冊的用戶才能進(jìn)入網(wǎng)頁中進(jìn)行購買等的操作。對于沒有注冊的用戶,權(quán)限只能局限于對藥品信息的瀏覽操作。已經(jīng)注冊的用戶,可以在該系統(tǒng)下進(jìn)行查看藥品信息,購買等的操作。普通管理員可以管理廠家的信息、藥品的信息、入庫的信息,修改管理員個人信息,但是只能夠查看訂單信息和用戶信息。超級管理員可以進(jìn)行以上所以用戶的操作并且可以管理用戶信息以及訂單信息,即對其的增刪改查操作。數(shù)據(jù)需求1.各種信息的完整性,藥品編號、賬號等重要信息不能為空;2.在各個表中,數(shù)據(jù)關(guān)聯(lián)的準(zhǔn)確性;3.數(shù)據(jù)類型的準(zhǔn)確性。界面需求在一個優(yōu)秀的系統(tǒng)中,除了后臺程序的完備,從用戶的角度來講,界面的美觀遠(yuǎn)比程序的完備更加具有說服力。因而,界面的設(shè)計慢慢的變成了評估一個軟件是否優(yōu)秀的重要的評測標(biāo)準(zhǔn)。首先,界面的設(shè)計必須條理,不適合太復(fù)雜,而影響用戶的操作;其次,界面的設(shè)計必須和諧,動靜結(jié)合,從而使用戶賞心悅目;最后,對于系統(tǒng)開發(fā)人員來講,界面的布局必須條理,各個標(biāo)簽的命名必須遵循一定的規(guī)范進(jìn)行編寫。從而使系統(tǒng)的開發(fā)更加條理,提高后臺開發(fā)人員的工作效率。為了更好的實(shí)現(xiàn)頁面的功能,我們在此使用Jsp腳本語言進(jìn)行編寫。它給整個服務(wù)器端的JAVA庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序??梢詷O大的提高開發(fā)效率,實(shí)現(xiàn)動態(tài)的可交互的頁面。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入以及人-機(jī)對話的界面格式等。4.數(shù)據(jù)庫的分析與設(shè)計在進(jìn)行了可行性研究報告和需求分析以后,為了具體的實(shí)現(xiàn)本系統(tǒng)最初想要實(shí)現(xiàn)的功能,我們需要進(jìn)行總體設(shè)計,對系統(tǒng)的各部分進(jìn)行詳細(xì)的分析與設(shè)計,最終完成一個完整的系統(tǒng)。在數(shù)據(jù)庫中存儲著大量的重要信息,包括在頁面上需要顯示的藥品信息等,以及在頁面上不顯示的用戶信息等。在數(shù)據(jù)庫系統(tǒng)的支持下,信息的整理、檢索、更新等操作才得以實(shí)現(xiàn)??梢钥闯?,數(shù)據(jù)庫是信息系統(tǒng)中的核心,也就是關(guān)鍵所在。它的完備與否直接決定這系統(tǒng)的成敗。對于系統(tǒng)數(shù)據(jù)庫的設(shè)計一般分為概念設(shè)計、邏輯設(shè)計以及物理設(shè)計3個步驟。一下是對其進(jìn)行的簡要介紹。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是采用結(jié)構(gòu)化分析方自底向上的建立整個系統(tǒng)的結(jié)構(gòu)。首先從用戶使用的視角設(shè)計視圖,之后將其歸類集成,最后進(jìn)行優(yōu)化,得到最終結(jié)果。概念模式是與數(shù)據(jù)庫邏輯結(jié)構(gòu)相互獨(dú)立的。目的是產(chǎn)生概念模式。實(shí)體—聯(lián)系(E-R)模型設(shè)計方法能過準(zhǔn)確直觀的顯示系統(tǒng)中各種實(shí)體與其所涉及的屬性或者所關(guān)聯(lián)的實(shí)體屬性,E-R模型的構(gòu)成成分是實(shí)體集、屬性和聯(lián)系集。是在數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計中常用的設(shè)計方法。1.用戶信息E-R圖如圖4-1所示:圖4-1用戶實(shí)體E-R圖2.藥品信息實(shí)體E-R圖如圖4-2所示:圖4-2藥品信息實(shí)體E-R圖3.廠家信息實(shí)體E-R圖如圖4-3所示:圖4-3廠家信息實(shí)體E-R圖4.訂單信息實(shí)體E-R圖如圖4-4所示:圖4-4訂單信息實(shí)體E-R圖5.入庫信息實(shí)體E-R圖如圖4-5所示:圖4-5入庫信息實(shí)體E-R圖數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計我們都知道,數(shù)據(jù)庫概念模型獨(dú)立于任何特定的數(shù)據(jù)庫管理系統(tǒng)。因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型。E-R模型向關(guān)系數(shù)據(jù)庫模型轉(zhuǎn)換應(yīng)遵循下列原則:1.每一個實(shí)體要轉(zhuǎn)換成一個關(guān)系,實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼;2.所有的主鍵必須定義非空(NOTNULL);3.具有相同碼的關(guān)系模式可合并;4.同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按下述1:1、1:n和m:n三種情況分別處理;5.一個聯(lián)系轉(zhuǎn)化為一個關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)化為關(guān)系的屬性,該關(guān)系的碼則有三種情況:1)若聯(lián)系為1:1,則每個實(shí)體的碼均是該關(guān)系的后選碼;2)若聯(lián)系為1:n,則關(guān)系的碼為n端實(shí)體的碼;3)若聯(lián)系為m:n,則關(guān)系的碼為諸實(shí)體碼的組合。根據(jù)E-R模型,藥品進(jìn)銷存管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是對各數(shù)據(jù)表的詳細(xì)說明。1.用戶信息表主要用于記錄用戶的基本信息以及各信息的數(shù)據(jù)類型、是否為主鍵、是否允許為空、相應(yīng)說明等信息。表結(jié)構(gòu)如表4-1所示:表4-1用戶信息表(USER)列名數(shù)據(jù)類型長度是否允許為空是否主鍵說明USER_IDVARCHAR32否是賬號USER_NAMEVARCHAR100是否姓名USER_PASSWORDVARCHAR128否否密碼USER_SEXVARCHAR2是否性別USER_AGEINT4是否年齡USER_TELVARCHAR30是否聯(lián)系方式USER_EMAILVARCHAR128是否郵箱USER_ADDRESSVARCHAR128是否地址USER_IDENTITYVARCHAR32是否身份2.藥品信息表主要是記錄了藥品的基本信息以及各信息的數(shù)據(jù)類型、是否為主鍵、是否允許為空、相應(yīng)說明等信息。表結(jié)構(gòu)如表4-2所示:表4-2藥品信息表(MEDICINEINFO)列名數(shù)據(jù)類型長度是否允許為空是否主鍵說明MED_NOVARCHAR32否是產(chǎn)品編號MED_NAMEVARCHAR128否否通用名稱APP_NOVARCHAR128是否批準(zhǔn)文號MARK_PRICEDECIMAL10,2否否市場價格IHEALTH_PRICEDECIMAL10,2否否i健康價格FAC_NAMEVARCHAR128否否生產(chǎn)廠家MED_DATEVARCHAR128否否生產(chǎn)日期MED_NUMINT10否否藥品數(shù)量MED_CLASSVARCHAR128否否藥品類別3.廠家信息表主要是記錄了廠家基本信息以及各信息的數(shù)據(jù)類型、是否為主鍵等信息。表結(jié)構(gòu)如表4-3所示:表4-3廠家信息表(FACTORYINFO)列名數(shù)據(jù)類型長度是否允許為空是否主鍵說明FAC_NAMEVARCHAR128否是廠家名稱FAC_ADDRESSVARCHAR256是否廠家地址CONN_NAMEVARCHAR100是否聯(lián)系人FAC_TELVARCHAR30是否聯(lián)系電話FAC_EMAILVARCHAR128是否聯(lián)系郵箱4.訂單信息表主要是記錄了藥品銷售的基本信息以及各信息的數(shù)據(jù)類型、是否為主鍵等信息。表結(jié)構(gòu)如表4-4所示:表4-4訂單信息表(ORDERFORMINFO)列名數(shù)據(jù)類型長度允許空是否主鍵說明ORDER_NOVARCHAR32否是訂單編號USER_IDVARCHAR32否否用戶賬號CONSIGNEE_NAMEVARCHAR100否否收件人CONSIGNEE_TELVARCHAR30否否聯(lián)系電話CONSIGNEE_ADDRESSVARCHAR128否否收件地址MED_NOVARCHAR32否否藥品編號MED_NAMEVARCHAR128否否藥品名稱IHEALTH_PRICEDECIMAL10,2否否i健康價格BUY_NUMINT10否否購買數(shù)量TOTAL_PRICEDECIMAL10,2否否總價格DELIVERYVARCHAR100否否配送方式ORDER_STATEVARCHAR10否否訂單狀態(tài)5.入庫信息表主要是記錄了入庫銷售的基本信息以及各信息的數(shù)據(jù)類型、是否為主鍵等信息。表結(jié)構(gòu)如表4-5所示:表4-5入庫信息表(STOCKINFO)列名數(shù)據(jù)類型長度允許空是否主鍵說明STO_NOVARCHAR128否是入庫編號FAC_NAMEVARCHAR128否否廠家名稱MED_NOVARCHAR32否否藥品編號MED_NAMEVARCHAR128否否藥品名稱OPERATOR_NAMEVARCHAR100是否操作人FAC_TELVARCHAR30是否聯(lián)系電話STO_NUMINT10否否數(shù)量STO_PRICEDECIMAL10,2否否價格數(shù)據(jù)庫的連接原理4.3.1JDBC采用JDBC的方式進(jìn)行數(shù)據(jù)庫的連接,首先在工程的相應(yīng)文件夾里導(dǎo)入對應(yīng)數(shù)據(jù)庫的jar包。然后在DBHelp.java中用Class.forName()方法來加載驅(qū)動程序,之后用DriverManager的getConnection()方法創(chuàng)建數(shù)據(jù)庫的連接。程序采用的是DAO模式來操作數(shù)據(jù)庫,DAO(DataAccessObject,數(shù)據(jù)訪問對象),是Java編程中的一種經(jīng)典模式。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫的物理位置,已經(jīng)是何種數(shù)據(jù)庫,只需使用封裝數(shù)據(jù)庫中表示記錄的數(shù)據(jù)對象即可。其思想如圖4-6所示:使用使用創(chuàng)建/使用封裝獲取/修改BusinessObjectDataAccessObjectDataSourceDataTransferObject圖4-6DAO模式類圖圖中BussinessObject是業(yè)務(wù)對象,是使用DAO模式的客戶端;DataTransferObject數(shù)據(jù)傳輸對象,用來在應(yīng)用程序不同層次之間傳輸對象。在一個分布式應(yīng)用程序中,通常可以提高整體的性能;DataObjectAcces數(shù)據(jù)輸入/輸出對象封裝了對數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源??梢詮膱D中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫的操作,主要使用DBContent的對象連接一個數(shù)據(jù)庫(建立一個類DBHelp),主要代碼如下:1.獲取數(shù)據(jù)庫驅(qū)動,連接數(shù)據(jù)庫,并設(shè)置數(shù)據(jù)庫登錄名以及密碼;Class.forName("com.mysql.jdbc.Driver");Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/medicinemanager","root","liang");2.通過定義exeSQL類(返回類型為boolean)和一個queryMsg類(返回類型為ResultSet)來對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查;PreparedStatementpst=getConnection().prepareStatement(sql);intnum=pst.executeUpdate();ResultSetrs=pst.executeQuery();這樣在程序需要連接數(shù)據(jù)庫的地方,只需要生成一個DBHelp的對象,就可以對數(shù)據(jù)庫進(jìn)行連接并操作。4.3.2MyBatis1.在創(chuàng)建好表、實(shí)體類、定義好數(shù)據(jù)訪問接口后,創(chuàng)建Mybatis映射文件UserDao.xml。核心映射文件:通過配置mapper標(biāo)簽中的namespace屬性來指定命名空間。通過設(shè)置resultMap結(jié)果映射標(biāo)簽來描述如何從數(shù)據(jù)庫結(jié)果集中加載對象。通過設(shè)置insert標(biāo)簽、update標(biāo)簽、delete標(biāo)簽、select標(biāo)簽來對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查的操作;2.創(chuàng)建Mybatis配置文件configuration.xml。引入perties來設(shè)置name、dataSource.driverClassName(獲取驅(qū)動)、dataSource.url(獲取路徑)、dataSource.username(設(shè)置數(shù)據(jù)庫登陸名)、dataSource.password(設(shè)置數(shù)據(jù)庫密碼)。3.SqlSession接口。首先在mybatis-config.xml中通過配置properties屬性里面的resource值來引用外部屬性文件。通過environments配置適應(yīng)多種環(huán)境,有助于應(yīng)用多種數(shù)據(jù)庫配置,來配置環(huán)境參數(shù)。通過配置mappers中的package標(biāo)簽中的name參數(shù)來映射文件查找策略。5.系統(tǒng)功能實(shí)現(xiàn)繼需求分析以及系統(tǒng)設(shè)計等階段后,就著手開始系統(tǒng)功能實(shí)現(xiàn)階段。將系統(tǒng)從技術(shù)層面提升到物理層面上,使用戶能夠直接通過一個直觀的界面操縱數(shù)據(jù)。是之前各個階段的結(jié)合。5.1登陸頁面實(shí)現(xiàn)1.描述:為了保證各用戶可以分別管理自己的信息,并保證系統(tǒng)以及用戶信息的安全性,在使用該系統(tǒng)之前,需要對用戶身份以及賬戶信息進(jìn)行驗證。(即驗證用戶的賬號及密碼)。2.程序運(yùn)行效果圖如圖5-1所示:圖5-1系統(tǒng)登陸頁面設(shè)計3.實(shí)現(xiàn)過程在登陸頁面輸入賬號和密碼后,點(diǎn)擊登陸按鈕,通過jQuery對賬號和密碼是否為空進(jìn)行驗證。之后跳轉(zhuǎn)到登陸的serviceLoginServlet.java中,它將前臺數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行匹配,驗證信息正確性并確定用戶權(quán)限,使用AJAX驗證輸出結(jié)果,或登錄成功則獲取用戶權(quán)限轉(zhuǎn)而進(jìn)入index.jsp中。由于doGet方法的安全性不如doPost方法的安全性高,故將這里的doPost方法寫入doGet方法。在doPost方法中寫入我們的主要操作。1)在登錄頁面中,使用的是MyBatis框架,故需要在一開始通過resource來加載配置文件和映射文件(mybatis-config.xml);2)構(gòu)造讀取xml文件的方式。需要創(chuàng)建SqlSessionFactory類的實(shí)例(相當(dāng)于是產(chǎn)生連接池),通過調(diào)用SqlSessionFactoryBuilder類的實(shí)例的build方法來完成。正如它名字暗示那樣;3)通過SqlSessionFactory來創(chuàng)建一個SqlSession實(shí)例。SqlSession包含了所有執(zhí)行數(shù)據(jù)庫SQL語句的方法,然后可以通過SqlSession實(shí)例執(zhí)行映射SQL語句;4)通過session中的getMapper方法從會話中獲取mapper,從而得到相應(yīng)數(shù)據(jù)庫中的userid和password,并寫if語句對userid和password的正確性進(jìn)行驗證;5)最后,通過關(guān)閉會話。LoginService.java關(guān)鍵代碼如下:SqlSessionsession=sqlSessionFactory.openSession(true);UserDaouserDao=session.getMapper(UserDao.class);Useruser=newUser();user=userDao.getUserById(userid);if(user!=null&&user.getPassword().equals(password)){pw.print(true);}else{ pw.print(false);}finally{ session.close();}5.2注冊頁面實(shí)現(xiàn)1.描述:主要用于實(shí)現(xiàn)新用戶的注冊功能。在用戶沒有i健康賬號的時候,如果需要進(jìn)行購買、查看訂單等操作時,需要注冊一個用戶。其中包括:賬號、密碼、姓名、年齡、聯(lián)系方式、性別等用戶的基本信息。驗證注冊用戶信息的正確性,使其具有進(jìn)入系統(tǒng)的權(quán)限以及購買等的權(quán)限。2.程序運(yùn)行效果圖如圖5-2所示:圖5-2系統(tǒng)注冊頁面設(shè)計3.實(shí)現(xiàn)過程在注冊頁面的第一個標(biāo)簽頁:設(shè)置登錄名中,輸入賬號和密碼,點(diǎn)擊下一步按鈕,通過jQuery對用戶輸入信息是否為空進(jìn)行驗證。之后跳轉(zhuǎn)到注冊的service中,通過UserJudgementServlet.java將前臺數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行匹配,驗證賬號信息是否重復(fù)。驗證通過進(jìn)入下一個標(biāo)簽頁:填寫賬戶信息,輸入姓名、性別、年齡、電話、郵箱、所在地區(qū)等,點(diǎn)擊注冊按鈕,跳轉(zhuǎn)到注冊的service中,通過UserAddServlet.java將前臺上傳的用戶數(shù)據(jù)添加到數(shù)據(jù)庫的用戶信息表中。其中標(biāo)簽頁的切換以及錯誤信息提醒通過AJAX實(shí)現(xiàn)。1)在注冊頁面中,使用的是MyBatis框架,通過resource來加載配置文件和映射文件(mybatis-config.xml);2)通過調(diào)用SqlSessionFactoryBuilder類的實(shí)例的build方法來構(gòu)造讀取xml文件的方式SqlSessionFactory;3)通過SqlSessionFactory創(chuàng)建SqlSession實(shí)例來執(zhí)行映射SQL語句;4)通過session中的getMapper方法從會話中獲取mapper,從而得到相應(yīng)數(shù)據(jù)庫中的userid以及用戶的其他重要信息,并通過UserJudgementServlet.java中的條件判斷語句user==null來驗證輸入用戶是否已經(jīng)存在,如果不為空則該用戶已經(jīng)存在,提示錯誤信息;如果不存在則跳轉(zhuǎn)到UserAddServlet.java中,獲取各個字段的值、創(chuàng)建新用戶設(shè)置各個字段的值、增加該用戶信息到數(shù)據(jù)庫中;5.最后,關(guān)閉會話。UserAddServlet.java關(guān)鍵代碼如下: Stringuserid=req.getParameter("userid"); users.setUserId(userid);userDao.addUser(users);5.3用戶信息管理在后臺管理界面中,在左側(cè)欄中選擇用戶信息,進(jìn)入用戶信息管理界面。上面主要顯示了各用戶的基本信息(包括賬號、姓名、密碼、性別、年齡、聯(lián)系方式、郵箱、住址等內(nèi)容)。可以進(jìn)行用戶信息的增刪改查操作。界面設(shè)計主要通過jQueryEasyUi實(shí)現(xiàn)數(shù)據(jù)以表格的形式顯示并添加相關(guān)的樣式以及對數(shù)據(jù)的編輯等功能。其中實(shí)現(xiàn)如下:1)通過Userinfodel.java將管理員選中行信息進(jìn)行刪除;2)通過UserinfoAdd.java將新添加信息添加到數(shù)據(jù)庫中;3)通過Userinfoupd.java將數(shù)據(jù)修改部分在數(shù)據(jù)庫中更新;4)通過UserinfoOperate.java對新增加數(shù)據(jù)以及已修改數(shù)據(jù)進(jìn)行保存;5)通過UserinfoQuery.java實(shí)現(xiàn)對數(shù)據(jù)的查詢功能。程序運(yùn)行效果圖如圖5-3所示:圖5-3用戶信息管理頁面設(shè)計5.3.1用戶信息錄入1.描述:管理員登陸到用戶管理界面后,鼠標(biāo)右擊選擇添加或者直接選擇添加按鈕,均可彈出添加用戶信息窗口,在該窗口中進(jìn)行用戶信息添加即可。如果信息輸入有誤,則彈出出錯提示。否則,添加成功,并在該頁面中顯示出剛添加用戶的信息。2.程序效果圖如下圖5-4所示(兩種方式):圖5-4用戶信息添加頁面設(shè)計3.實(shí)現(xiàn)過程1)有關(guān)doGet和doPost方法與之前的用戶登錄與注冊頁面基本相同,故再之后的描述中均不再贅述,如需要,可以轉(zhuǎn)到之前的登錄和注冊描述中查看;2)有關(guān)于中文亂碼的解決。通過對req和resp的setCharacterEncoding屬性為UTF-8來解決在代碼及數(shù)據(jù)庫中出現(xiàn)的中文亂碼問題;3)通過jdbc連接到數(shù)據(jù)庫。創(chuàng)建一個DBHelp對象來將錄入的信息插入數(shù)據(jù)庫中。UserinfoAdd.java主要代碼如下:Stringsql="insertintouservalues(?,?,?,?,?,?,?,?)";booleanboo=newDBHelp().exeSQL(sql,userid,username,password,sex,age,tel,email,address);5.3.2用戶信息修改1.描述:管理員登陸到用戶管理界面后,單擊選中要修改用戶信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該用戶信息的修改即可。如果信息輸入有誤,則彈出出錯提示。否則,修改成功,并在該頁面中顯示出剛添加用戶的信息。2.程序效果圖如下圖5-5所示: 圖5-5用戶信息修改頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行修改。Userinfoupd.java主要代碼如下:Stringsql="updateusersetUSER_NAME=?,USER_PASSWORD=?,USER_SEX=?,USER_AGE=?,USER_TEL=?,USER_EMAIL=?,USER_ADDRESS=?whereUSER_ID=?";5.3.3用戶信息刪除1.描述:管理員登陸到用戶管理界面后,單擊選中要修改用戶信息的行,鼠標(biāo)右擊選擇刪除或者直接選擇刪除按鈕,均可彈出刪除窗口,之后選擇確定即可刪除該行信息。刪除后,該信息將不在用戶信息界面中出現(xiàn)。2.程序效果圖如下圖5-6所示:圖5-6用戶信息刪除頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù)。即該條信息的主鍵信息;2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行刪除。Userinfodel.java主要代碼如下:Stringsql="deletefromuserwhereUSER_ID=?";5.3.4用戶信息查詢1.描述:管理員登陸到用戶管理界面后,鼠標(biāo)右擊選擇查詢或者直接選擇查詢按鈕,在窗口的最右邊會顯出一個查詢框,在下拉列表框中可以選擇你想要依靠什么關(guān)鍵字來查詢,選擇關(guān)鍵字,在框中輸入你要查詢的內(nèi)容,點(diǎn)擊查詢。就會在用戶信息管理界面中顯示出你所查詢的內(nèi)容。2.程序效果圖如下圖5-7所示:圖5-7用戶信息查找頁面設(shè)計3.實(shí)現(xiàn)過程1)由于頁面中使用了分頁,所以在查詢數(shù)據(jù)的時候,需要使用page變量和rows變量進(jìn)行操控。相應(yīng)代碼在文下已有;2)創(chuàng)建類queryUserinfoMsg(Stringsql,intpage,introws)用來獲取查詢到的信息的所有數(shù)據(jù),并存放在數(shù)組中;3)然后通過StringBufferstringBuffer=newStringBuffer();創(chuàng)建一個字符串緩存區(qū)來存放查詢出來的數(shù)據(jù)并用stringBuffer.append給界面中追加信息。UserinfoQuery.java主要代碼如下:sql="select*fromuserwhere"+usernameKey+"like'%"+usernameValue+"%'limit"+(1)*rows+","+rows;sqlCount="selectcount(*)fromuserwhere"+usernameKey+"like'%"+usernameValue+"%'";5.4藥品信息管理在后臺管理界面中,在左側(cè)欄中選擇藥品信息,進(jìn)入藥品信息管理界面。上面主要顯示了藥品的基本信息(包括藥品編號、藥品名稱、生產(chǎn)編號、市場價格、i健康價格、生產(chǎn)廠家、生產(chǎn)日期、藥品數(shù)量、藥品類別等信息)??梢赃M(jìn)行藥品信息的增刪改查操作。其中實(shí)現(xiàn)如下:1)通過MedicineDel.java將管理員選中行信息進(jìn)行刪除;2)通過MedicineAdd.java將新添加信息添加到數(shù)據(jù)庫中;3)通過MedicineUpd.java將數(shù)據(jù)修改部分在數(shù)據(jù)庫中更新;4)通過MedicineOperate.java對新增加數(shù)據(jù)以及已修改數(shù)據(jù)進(jìn)行保存;5)通過MedicineQuery.java實(shí)現(xiàn)對數(shù)據(jù)的查詢功能。程序運(yùn)行效果圖如圖5-8所示:圖5-8藥品信息管理頁面設(shè)計5.4.1藥品信息錄入1.描述:管理員登陸到藥品管理界面后,鼠標(biāo)右擊選擇添加則彈出添加藥品信息窗口,在該窗口中進(jìn)行藥品信息添加即可?;蛘咧苯舆x擇添加按鈕,在所有信息的最后一行之后會添加一條新的空白行,在空白行的輸入框內(nèi)輸入數(shù)據(jù),點(diǎn)擊保存按鈕,添加信息無誤,彈出保存成功信息。如果信息輸入有誤,則彈出出錯提示。否則,添加成功,并在該頁面中顯示出剛添加藥品的信息。2.程序效果圖如下圖5-9所示:圖5-9用戶信息添加頁面設(shè)計3.實(shí)現(xiàn)過程通過jdbc連接到數(shù)據(jù)庫。創(chuàng)建一個DBHelp對象來將錄入的信息插入數(shù)據(jù)庫中。MedicineAdd.java主要代碼如下:Stringsql="insertintomedicineinfovalues(?,?,?,?,?,?,?,?,?)";5.4.2藥品信息修改1.描述:管理員登陸到藥品管理界面后,單擊選中要修改藥品信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該藥品信息的修改即可。如果信息輸入有誤,則彈出出錯提示。否則,修改成功,并在該頁面中顯示出剛修改藥品的信息。2.程序效果圖如下圖5-10所示:圖5-10藥品信息修改頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);即該條信息的主鍵以及其他信息;2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行修改。Medicineupd.java主要代碼如下:Stringsql="updatemedicineinfosetMED_NAME=?,APP_NO=?,MARK_PRICE=?,IHEALTH_PRICE=?,FAC_NAME=?,MED_DATE=?,MED_NUM=?,MED_CLASS=?whereMED_NO=?";5.4.3藥品信息刪除1.描述:管理員登陸到藥品管理界面后,單擊選中要修改藥品信息的行,鼠標(biāo)右擊選擇刪除或者直接選擇刪除按鈕,均可彈出刪除窗口,在顯示信息中顯示具體刪除幾個數(shù)據(jù),在核對無誤后,選擇確定(即ok)即可刪除該行信息。刪除后,該信息將不在藥品信息界面中出現(xiàn)。2.程序效果圖如下圖5-11所示:圖5-11藥品信息刪除頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù)。即該條信息的主鍵信息;2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行刪除。Medicinedel.java主要代碼如下:Stringsql="deletefrommedicineinfowhereMED_NO=?";5.4.4藥品信息查詢1.描述:管理員登陸到藥品管理界面后,鼠標(biāo)右擊選擇查詢或者直接選擇查詢按鈕,在窗口的最右邊會顯出出一個查詢框,在下拉列表框中可以選擇你想要依靠什么關(guān)鍵字來查詢,選擇關(guān)鍵字,在框中輸入你要查詢的內(nèi)容,點(diǎn)擊查詢。就會在藥品信息管理界面中顯示出你所查詢的內(nèi)容。2.程序效果圖如下圖5-12所示:圖5-12藥品信息查詢頁面設(shè)計3.實(shí)現(xiàn)過程1)頁面中使用了分頁管理,在數(shù)據(jù)庫中查詢需要查詢的數(shù)據(jù)時,使用page變量和rows變量進(jìn)行操控;2)創(chuàng)建類queryUserinfoMsg(Stringsql,intpage,introws)用來獲取查詢到的信息的所有數(shù)據(jù),并存放在數(shù)組中;3)然后通過StringBufferstringBuffer=newStringBuffer();創(chuàng)建一個字符串緩存區(qū)來存放查詢出來的數(shù)據(jù)并用stringBuffer.append給界面中追加信息。5.5廠家信息管理在后臺管理界面中,在左側(cè)欄中選擇廠家信息,進(jìn)入廠家信息管理界面。上面主要顯示了廠家的基本信息(包括廠家名稱、廠家地址、聯(lián)系人、聯(lián)系電話、聯(lián)系郵箱等內(nèi)容)??梢赃M(jìn)行廠家信息的增刪改查操作。其中實(shí)現(xiàn)如下:1)通過FactoryDel.java將管理員選中行信息進(jìn)行刪除;2)通過FactoryAdd.java將新添加信息添加到數(shù)據(jù)庫中;3)通過FactoryUpd.java將數(shù)據(jù)修改部分在數(shù)據(jù)庫中更新;4)通過FactoryOperate.java對新增加數(shù)據(jù)以及已修改數(shù)據(jù)進(jìn)行保存;5)通過FactoryQuery.java實(shí)現(xiàn)對數(shù)據(jù)的查詢功能。程序運(yùn)行效果圖如圖5-13所示:圖5-13廠家信息管理頁面設(shè)計5.5.1廠家信息錄入1.描述:登陸到廠家信息管理界面后,鼠標(biāo)右擊選擇添加或者直接選擇添加按鈕,均可彈出添加廠家信息窗口,在該窗口中進(jìn)行廠家信息添加即可。如果信息輸入有誤,則彈出出錯提示。否則,添加成功,并在該頁面中顯示出剛添加廠家的信息。2.程序效果圖如下圖5-14所示:圖5-14藥品信息添加頁面設(shè)計3.實(shí)現(xiàn)過程通過jdbc連接到數(shù)據(jù)庫。創(chuàng)建一個DBHelp對象來將錄入的信息插入數(shù)據(jù)庫中。FactoryAdd.java主要代碼如下:Stringsql="insertintofactoryinfovalues(?,?,?,?,?)";5.5.2廠家信息修改1.描述:管理員登陸到廠家管理界面后,單擊選中要修改廠家信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該廠家信息的修改即可。如果信息輸入有誤,則彈出出錯提示。否則,修改成功,并在該頁面中顯示出剛修改廠家的信息。2.程序效果圖如下圖5-15所示:圖5-15廠家信息修改頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行修改。Factoryupd.java主要代碼如下:Stringsql="updatefactoryinfosetFAC_ADDRESS=?,CONN_NAME=?,FAC_TEL=?,FAC_EMAIL=?whereFAC_NAME=?";5.5.3廠家信息刪除1.描述:管理員登陸到廠家管理界面后,單擊選中要修改廠家信息的行,鼠標(biāo)右擊選擇刪除或者直接選擇刪除按鈕,均可彈出刪除窗口,之后選擇確定即可刪除該行信息。刪除后,該信息將不在廠家信息界面中出現(xiàn)。2.程序效果圖如下圖5-16所示:圖5-16廠家信息刪除頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行刪除。Factorydel.java主要代碼如下:Stringsql="deletefromfactoryinfowhereFAC_NAME=?";5.5.4廠家信息查詢1.描述:管理員登陸到廠家管理界面后,鼠標(biāo)右擊在彈出框中選擇查詢或者直接選擇查詢按鈕,在窗口的最右邊會顯出出一個查詢框,在下拉列表框中可以選擇你想要依靠什么關(guān)鍵字來查詢,選擇關(guān)鍵字,之后在搜索框中輸入你要查詢的具體內(nèi)容(如輸入北京,則出現(xiàn)廠家地址包含北京的所有信息),點(diǎn)擊查詢或者按下回車鍵。就會在廠家信息管理界面中顯示出你所查詢的內(nèi)容。2.程序效果圖如下圖5-17所示:圖5-17廠家信息查找頁面設(shè)計3.實(shí)現(xiàn)過程1)由于頁面中使用了分頁,所以在查詢數(shù)據(jù)的時候,需要使用page變量和rows變量進(jìn)行操控;2)創(chuàng)建類queryUserinfoMsg(Stringsql,intpage,introws)用來獲取查詢到的信息的所有數(shù)據(jù),并存放在數(shù)組中;3)然后通過StringBufferstringBuffer=newStringBuffer();創(chuàng)建一個字符串緩存區(qū)來存放查詢出來的數(shù)據(jù)并用stringBuffer.append給界面中追加信息。5.6訂單信息管理在后臺管理界面中,在左側(cè)欄中選擇訂單信息,進(jìn)入訂單信息管理界面。上面主要顯示了訂單的基本信息(包括廠家名稱、廠家地址、聯(lián)系人、聯(lián)系電話、聯(lián)系郵箱等內(nèi)容)??梢赃M(jìn)行訂單信息的增刪改查操作。其中實(shí)現(xiàn)如下:1)通過OrderformDel.java將管理員選中行信息進(jìn)行刪除;2)通過OrderformAdd.java將新添加信息添加到數(shù)據(jù)庫中;3)通過OrderformUpd.java將數(shù)據(jù)修改部分在數(shù)據(jù)庫中更新;4)通過OrderformOperate.java對新增加數(shù)據(jù)以及已修改數(shù)據(jù)進(jìn)行保存;5)通過OrderformQuery.java實(shí)現(xiàn)對數(shù)據(jù)的查詢功能。程序運(yùn)行效果圖如圖5-18所示:圖5-18訂單信息管理頁面設(shè)計5.6.1訂單信息錄入1.描述:管理員登陸到訂單信息管理界面后,鼠標(biāo)右擊選擇添加或者直接選擇添加按鈕,在彈出的添加訂單信息窗口中進(jìn)行訂單信息添加即可。之后會顯示在列表中。2.程序效果圖如下圖5-19所示:圖5-19訂單信息添加頁面設(shè)計3.實(shí)現(xiàn)過程通過jdbc連接到數(shù)據(jù)庫。創(chuàng)建一個DBHelp對象來將錄入的信息插入數(shù)據(jù)庫中。OrderformAdd.java主要代碼如下:Stringsql="insertintoorderforminfovalues(?,?,?,?,?,?,?,?,?,?,?,?)";5.6.2訂單信息修改1.描述:管理員登陸到訂單管理界面后,單擊選中要修改訂單信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該訂單信息的修改即可。如果信息輸入有誤,則彈出出錯提示。否則,修改成功,并在該頁面中顯示出剛修改訂單的信息。2.程序效果圖如下圖5-20所示:圖5-20訂單信息修改頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行修改。Orderformupd.java主要代碼如下:Stringsql="updateorderforminfosetUSER_ID=?,CONSIGNEE_NAME=?,CONSIGNEE_TEL=?,CONSIGNEE_ADDRESS=?,MED_NO=?,MED_NAME=?,"+"IHEALTH_PRICE=?,BUY_NUM=?,TOTAL_PRICE=?,DELIVERY=?,ORDER_STATE=?whereORDER_NO=?";5.6.3訂單信息刪除1.描述:管理員登陸到訂單管理界面后,單擊選中要修改訂單信息的行,鼠標(biāo)右擊選擇刪除或者直接選擇刪除按鈕,均可彈出刪除窗口,之后檢查上面輸出的刪除數(shù)量是否正確,如果確定正確則選擇確定即可刪除該行信息。刪除后,該信息將不在訂單信息界面中出現(xiàn)。2.程序效果圖如下圖5-21所示:圖5-21訂單信息刪除頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到Post方法提交的數(shù)據(jù)。即主鍵信息;2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行刪除。Orderformdel.java主要代碼如下:Stringsql="deletefromorderforminfowhereORDER_NO=?";5.6.4訂單信息查詢1.描述:管理員登陸到訂單管理界面后,鼠標(biāo)右擊選擇查詢或者直接選擇查詢按鈕,在窗口的最右邊會顯出出一個查詢框,在下拉列表框中可以選擇你想要依靠什么關(guān)鍵字來查詢,選擇關(guān)鍵字,在框中輸入你要查詢的內(nèi)容,點(diǎn)擊查詢。就會在訂單信息管理界面中顯示出你所查詢的內(nèi)容。2.程序效果圖如下圖5-22所示:圖5-22訂單信息查詢頁面設(shè)計3.實(shí)現(xiàn)過程1)由于頁面中使用了分頁,所以在查詢數(shù)據(jù)的時候,需要使用page變量和rows變量進(jìn)行操控;2)創(chuàng)建類queryUserinfoMsg(Stringsql,intpage,introws)用來獲取查詢到的信息的所有數(shù)據(jù),并存放在數(shù)組中;3)然后通過StringBufferstringBuffer=newStringBuffer();創(chuàng)建一個字符串緩存區(qū)來存放查詢出來的數(shù)據(jù)并用stringBuffer.append給界面中追加信息。5.7入庫信息管理在后臺管理界面中,在左側(cè)欄中選擇入庫信息,進(jìn)入入庫信息管理界面。上面主要顯示了入庫的基本信息(包括入庫編號、廠家名稱、藥品編號、藥品名稱、操作人、聯(lián)系電話、數(shù)量、價格等內(nèi)容)??梢赃M(jìn)行入庫信息的增刪改查操作。其中實(shí)現(xiàn)如下:1)通過StockDel.java將管理員選中行信息進(jìn)行刪除;2)通過StockAdd.java將新添加信息添加到數(shù)據(jù)庫中;3)通過StockUpd.java將數(shù)據(jù)修改部分在數(shù)據(jù)庫中更新;4)通過StockOperate.java對新增加數(shù)據(jù)以及已修改數(shù)據(jù)進(jìn)行保存;5)通過StockQuery.java實(shí)現(xiàn)對數(shù)據(jù)的查詢功能。程序運(yùn)行效果圖如圖5-23所示:圖5-23入庫信息管理頁面設(shè)計5.7.1入庫信息錄入1.描述:管理員登陸到入庫信息管理界面后,鼠標(biāo)右擊選擇添加或者直接選擇添加按鈕,均可彈出添加入庫信息窗口,在該窗口中進(jìn)行訂單信息添加即可。如果信息輸入有誤,則彈出出錯提示。否則,添加成功,并在該頁面中顯示出剛添加入庫的信息2.程序效果圖如下圖5-24所示:圖5-24入庫信息添加頁面設(shè)計3.實(shí)現(xiàn)過程通過jdbc連接到數(shù)據(jù)庫。創(chuàng)建一個DBHelp對象來將錄入的信息插入數(shù)據(jù)庫中。StockAdd.java主要代碼如下:Stringsql="insertintostockinfovalues(?,?,?,?,?,?,?,?)";5.7.2入庫信息修改1.描述:管理員登陸到入庫管理界面后,單擊選中要修改入庫信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該入庫信息的修改即可。如果信息輸入有誤,則彈出出錯提示。否則,修改成功,并在該頁面中顯示出剛修改入庫的信息。2.程序效果圖如下圖5-25所示:圖5-25入庫信息修改頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù);2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行修改。Stockupd.java主要代碼如下:Stringsql="updatestockinfosetFAC_NAME=?,MED_NO=?,MED_NAME=?,OPERATOR_NAME=?,FAC_TEL=?,STO_NUM=?,STO_PRICE=?whereSTO_NO=?";5.7.3入庫信息刪除1.描述:管理員登陸到入庫管理界面后,單擊選中要修改入庫信息的行,鼠標(biāo)右擊選擇刪除或者直接選擇刪除按鈕,均可彈出刪除窗口,之后檢查上面輸出的刪除數(shù)量是否正確,如果確定正確則選擇確定即可刪除該行信息。刪除后,該信息將不在訂單信息界面中出現(xiàn)。2.程序效果圖如下圖5-26所示:圖5-26入庫信息刪除頁面設(shè)計3.實(shí)現(xiàn)過程1)先通過request.getParameter()方法得到通過Post方法提交過來的數(shù)據(jù)。即該條信息的主鍵信息;2)然后通過以下語句對數(shù)據(jù)庫中的相應(yīng)信息進(jìn)行刪除。Stockdel.java主要代碼如下:Stringsql="deletefromstockinfowhereSTO_NO=?";5.7.4入庫信息查詢1.描述:管理員登陸到入庫管理界面后,鼠標(biāo)右擊選擇查詢或者直接選擇查詢按鈕,在窗口的最右邊會顯出出一個查詢框,在下拉列表框中可以選擇你想要依靠什么關(guān)鍵字來查詢,選擇關(guān)鍵字,在框中輸入你要查詢的內(nèi)容,點(diǎn)擊查詢。就會在入庫信息管理界面中顯示出你所查詢的內(nèi)容。2.程序效果圖如下圖5-27所示:圖5-27入庫信息查詢頁面設(shè)計3.實(shí)現(xiàn)過程1)由于頁面中使用了分頁,所以在查詢數(shù)據(jù)的時候,需要使用page變量和rows變量進(jìn)行操控;2)創(chuàng)建類queryUserinfoMsg(Stringsql,intpage,introws)用來獲取查詢到的信息的所有數(shù)據(jù),并存放在數(shù)組中;3)然后通過StringBufferstringBuffer=newStringBuffer();創(chuàng)建一個字符串緩存區(qū)來存放查詢出來的數(shù)據(jù)并用stringBuffer.append給界面中追加信息。5.8藥品頁面實(shí)現(xiàn)1.描述:所有用戶登錄到index.jsp頁面后(即主頁面),在搜索框中輸入數(shù)據(jù)庫中已有藥品或者在頁面的側(cè)邊欄等地方點(diǎn)擊某藥品都可以跳轉(zhuǎn)到所選擇或者查找的藥品詳細(xì)信息頁面。該頁面主要顯示藥品的通用名稱、產(chǎn)品編號、批準(zhǔn)文號、市場價格、i健康價格、生產(chǎn)廠家、購買數(shù)量等詳細(xì)信息。并且添加了加入購物車和立即購買按鈕,方便用戶對藥品進(jìn)行購買操作。2.程序效果圖如下圖5-28所示:圖5-28藥品信息頁面設(shè)計3.實(shí)現(xiàn)過程1)在com.data中創(chuàng)建MedicineInfo.java類在封裝有關(guān)于藥品的詳細(xì)信息;2)在com.dao包中創(chuàng)建MedicineDao.java和MedicineDaoImpl.java類里面封裝了三個接口,一個是findAllMedicineinfo,主要是通過藥品編號來查找藥品信息。用于單擊某個藥品名稱時使用。另一個是findOneMedicine,主要是通過藥品名稱來查找藥品信息。用于主頁面和其他頁面在搜索框中輸入某個藥品名稱時使用。第三個是AddOrderform,用戶增加訂單信息;3)在product.jsp頁面中通過${medicineinfo.medNo}的方式來或缺來自數(shù)據(jù)庫中的數(shù)據(jù)并顯示在頁面上;4)頁面中的購買數(shù)量的+、-通過js來實(shí)現(xiàn);5)給立即購買按鈕加入立即購買按鈕事件,點(diǎn)擊后直接提交訂單并打開購物車頁面。通過OrderformAddServlet.java中的findOrderform在已有的訂單中查 找訂單來判斷購物車中是否存在相同的藥品如果沒有,則通過AddOrderform將信息訂單信息添加到未完成訂單中,否則通過updateOrderformMedicineNum來更新已有信息。添加成功則轉(zhuǎn)到OrderformQueryServlet.java中通過判 斷訂單的orderState的值(當(dāng)前為null),進(jìn)而通過findAllOrderforms獲取所有訂單狀態(tài)為0的藥品,并將頁面跳轉(zhuǎn)到購物車頁面;6)給加入購物車按鈕加入購物車按鈕事件,只是提交訂單,不打開購物車頁面,通過設(shè)置href到orderformAddServlet.java中進(jìn)行相應(yīng)操作,添加成功后,顯示添加成功提示。5.9購買功能實(shí)現(xiàn)5.9.1購物車頁面1.描述:當(dāng)用戶在藥品頁面點(diǎn)擊立即購買,或者先進(jìn)行加入購物車之后點(diǎn)擊頁面特定位置上的購物車標(biāo)識的時候,頁面將跳轉(zhuǎn)到shoppingcart.jsp頁面中。在該頁面中主要顯示用戶需要購買藥品的信息(藥品、單價、數(shù)量、小計、操作、總價等信息)。同時可以對藥品信息進(jìn)行數(shù)量的增減以及對藥品進(jìn)行刪除等操作。2.程序效果圖如下圖5-29所示:圖5-29購物車頁面設(shè)計3.實(shí)現(xiàn)過程1)在com.data中創(chuàng)建OrderformInfo.java類在封裝有關(guān)于藥品的詳細(xì)信息;2)在com.dao包中創(chuàng)建OrderformDao.java和OrderformDaoImpl.java類。OrderformDao.java中創(chuàng)建了:updateOrderformMedicineNum,用來修改訂單中數(shù)量和計算后的總價格;3)在shoppingcart.jsp頁面中通過${orderforminfo.totalPrice}的方式來或缺來自數(shù)據(jù)庫中的數(shù)據(jù)并顯示在頁面上;4)頁面中的購買數(shù)量的+、-等通過js來實(shí)現(xiàn);5)給結(jié)算按鈕加上事件,點(diǎn)擊后直接提交訂單并打開訂單確定。通過js的ajax來實(shí)現(xiàn),設(shè)置url到OrderformUpdateNumServlet.java將前臺數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行同步,確定最終需購買的藥品信息(其中所使用的方法updateOrderformMedicineNum),如果成功則設(shè)置href到order.jsp頁面中進(jìn)行相應(yīng)的操作。確定訂單頁面1.描述:當(dāng)用戶在購物車頁面點(diǎn)擊結(jié)算按鈕時,頁面將跳轉(zhuǎn)到訂單確定頁面。該頁面主要顯示用戶及收件人的基本信息(姓名、聯(lián)系電話、地址、配送方式)。以及剛才所提交的需要購買藥品的基本信息。2.程序效果圖如下圖5-30所示:圖5-30確定訂單頁面設(shè)計3.實(shí)現(xiàn)過程1)在com.dao包中創(chuàng)建OrderformDao.java和OrderformDaoImpl.java類。OrderformDao.java中創(chuàng)建了:一updateOrderformConsignee,修改訂單中收件人信息;二updateOrderformState,用來修改訂單狀態(tài)(支付狀態(tài)“1”與未支付狀態(tài)“0”);2)在order.jsp頁面中通過${user.userName}的方式來或缺來自數(shù)據(jù)庫中的數(shù)據(jù)并顯示在頁面上;3)頁面中的修改收件人、提交訂單等動態(tài)效果通過js來實(shí)現(xiàn);4)在com.servlet包中另外創(chuàng)建了兩個類,分別為:OrderformUpdateConsignee.java和OrderformUpdateStateServlet.java類。通過OrderformUpdateConsignee.java將前臺用戶輸入的需更改信息傳入后臺,并更新數(shù)據(jù)庫中有關(guān)收件人的信息(其中所使用的方法updateOrderformConsignee);通過OrderformUpdateStateServlet.java在提交后更改訂單狀態(tài)(其中所使用的方法updateOrderformState)。5.9.3訂單頁面1.描述:實(shí)現(xiàn)用戶對已購買藥品信息的瀏覽。當(dāng)用戶完成訂單確認(rèn)操作后,將自動跳轉(zhuǎn)到訂單頁面。該頁面主要顯示了訂單編號、藥品、單價、數(shù)量、小計、收件人、物流等基本信息。2.程序效果圖如下圖5-31所示:圖5-31訂單頁面設(shè)計3.實(shí)現(xiàn)過程1)主要的數(shù)據(jù)交互在上面已經(jīng)詳細(xì)描述過,故不再重復(fù);2)頁面中信息的獲取通過${order.orderNo}來實(shí)現(xiàn);3)通過jQuery獲取當(dāng)前用戶的id以及其他藥品信息。5.10用戶信息管理頁面實(shí)現(xiàn)1.描述:實(shí)現(xiàn)用戶對自己信息管理。2.程序效果圖如下圖5-32所示:圖5-32用戶信息管理頁面設(shè)計3.實(shí)現(xiàn)過程1)通過jQuery獲取當(dāng)前用戶的id等信息;2)通過UserUpdateServlet.java來實(shí)現(xiàn)對用戶信息的更改。5.11主頁面實(shí)現(xiàn)1.描述:實(shí)現(xiàn)用戶對系統(tǒng)信息的總體瀏覽。對所需藥品進(jìn)行查詢、各頁面的入口以及退出登錄等操作。2.程序效果圖如下圖5-33所示:圖5-33主頁面設(shè)計3.實(shí)現(xiàn)過程1)通過jQuery獲取當(dāng)前用戶的id;2)通過MedicineQueryServlet.java將前臺數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行匹配,查找相應(yīng)藥品,此處使用模糊查找;3)通過AJAX進(jìn)行頁面的跳轉(zhuǎn)以及錯誤信息提醒;4)通過LogoutServlet.java來結(jié)束本次會話從而退出登錄;5)通過js實(shí)現(xiàn)頁面的動態(tài)效果。6.系統(tǒng)測試6.1系統(tǒng)測試目的與意義系統(tǒng)測試是管理信息系統(tǒng)開發(fā)周期中一個十分重要而漫長的的階段。其重要性體現(xiàn)在它是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,同時也是對整個系統(tǒng)開發(fā)過程(系統(tǒng)的分析、系統(tǒng)的設(shè)計以及系統(tǒng)的實(shí)現(xiàn))的最終審查。系統(tǒng)測試的

溫馨提示

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

最新文檔

評論

0/150

提交評論