電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)(含完整源代碼)_第1頁
電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)(含完整源代碼)_第2頁
電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)(含完整源代碼)_第3頁
電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)(含完整源代碼)_第4頁
電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)(含完整源代碼)_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE PAGE 77完整的簡單jsp網(wǎng)上書店詳細(xì)實例電子商務(wù)網(wǎng)站開發(fā)-小型網(wǎng)上書店課程設(shè)計(JSP)其中包括的詳細(xì)需求、業(yè)務(wù)分析、數(shù)據(jù)庫、源代碼我們使用JSPP和Javaa Beann來構(gòu)建一個個網(wǎng)上書店。介介紹的例子可可以分成兩大大部分,第一一部分是普通通程序,用于于客戶在網(wǎng)上上選購圖書,第第二部分是管管理程序,用用于在服務(wù)器器端處理客戶戶的定單。客客戶端程序由由以下幾個部部分構(gòu)成:defaultt.jsp:會員登錄界界面(首頁);checkloogon.jjsp:檢測測登錄代碼和和密碼是否一一致,根據(jù)由由JavaBBean返回回的結(jié)果顯示示不同的信息息。BuyerBeean:會員員的合

2、法性檢檢驗所用的BBean;booklisst.jspp:給登錄會會員顯示當(dāng)前前書店中可供供選擇的圖書書;addcartt.jsp:將所選的圖圖書加入購物物車;shoppinngcartt.jsp:查看購物車車的內(nèi)容;本例的數(shù)據(jù)庫采采用Acceess(.MMDB數(shù)據(jù)庫庫),對數(shù)據(jù)據(jù)庫的訪問采采用便于理解解的JDBCC-ODBCC方式,在使使用本例前先先在本地數(shù)據(jù)據(jù)庫建立一個個ODBC數(shù)數(shù)據(jù)源:boookstoore。設(shè)置步驟如下:(1)在開始-設(shè)置-控制面版(WWin98、NNT4.0)中中選取“數(shù)據(jù)源(OODBC)”;在Winn 20000 Proffessioonal和SServerr中分

3、別位于于“開始-設(shè)設(shè)置-控制制面版-管管理工具”和“開始-程程序-管理理工具”下。(2)啟動“數(shù)數(shù)據(jù)源(ODDBC)”配置程序,界界面如圖155-1所示。圖15-1 ODBC數(shù)數(shù)據(jù)源管理界界面(3)在圖155-1中“系統(tǒng)DSNN”選項下單擊擊“添加”按鈕,來添添加一個系統(tǒng)統(tǒng)的數(shù)據(jù)源(DDSN),則則出現(xiàn)如圖115-2所示示數(shù)據(jù)源驅(qū)動動程序選擇界界面:圖15-2 數(shù)據(jù)源驅(qū)動動程序選擇界界面(4)在圖155-2中選擇擇“Microosoft Accesss Driiver (*.mdbb)”單擊“完成”加載Acccess數(shù)據(jù)據(jù)庫的驅(qū)動,則則出現(xiàn)如圖115-3所示示數(shù)據(jù)庫ODDBC安裝界界面:圖15

4、-3 數(shù)據(jù)庫ODDBC安裝界界面(5)在圖155-3中單擊擊“選擇(S)”按鈕,啟動動一個類似資資源管理器的的界面來選擇擇數(shù)據(jù)庫,如如圖15-44所示,在圖圖15-4所所示的界面中中選擇boookstorre.mdbb。圖15-4 數(shù)據(jù)庫選擇擇界面15.1 會會員登錄做一個網(wǎng)上書店店,在顧客開開始購書之前前,必須要記記錄用戶的一一些信息以便便用戶在不同同的分類、不不同的頁面購購書時,最后后能夠去收款款臺統(tǒng)一結(jié)帳帳,而且網(wǎng)上上書店同時有有許多人在選選購圖書,也也要求對不同同的顧客進行行區(qū)分,我們們可以要求顧顧客在購書之之前進行注冊冊成為會員,以以后只用會員員代碼和密碼碼即可登錄。為了便于說明現(xiàn)現(xiàn)

5、在的電子商商務(wù)網(wǎng)站,由由JSP做頁頁面表現(xiàn),由由Java Bean做應(yīng)用用邏輯的結(jié)構(gòu)構(gòu),在本例中中將會員登錄錄程序分成兩兩大部分:一一、Javaa Bean用于對對數(shù)據(jù)庫的操操作,驗證用用戶名和密碼碼是否正確;二、JSPP頁面部分,用用于供用戶會會員代碼和密密碼以及顯示示驗證結(jié)果。15.1.1 會員登錄錄Java Bean我們網(wǎng)上書店中中的會員信息息的庫結(jié)構(gòu)如如圖15-55所示:圖15-5 會員信息庫庫其中membeerID 是是主鍵,用于于區(qū)分不同的的會員,新會會員注冊時只只能使用沒有有被使用的用用戶代碼。在驗證時我們只只要使用驗證證用戶的meemberIID和其pwwd是否一致致即可判斷該

6、該用戶是否合合法,如果合合法則其登錄錄次數(shù)加1。下面是用戶驗證證部分的Jaava Bean的代碼碼清單15-1 BuyeerBeann.Javaa/* *BuyyerBeaan.Javva 11.10.22001 *Copyriight 20000, 20011 by cuuug lllp.*本Bean中中有兩個seet方法和兩兩個get 方法:*setMemmberIDD() 對BuyeerBeann中的memmberIDD屬性進行賦賦值;*setPwdd()對BuyerrBean中中的 pwdd 屬性進行行賦值; *gettLogonntimess() 取該會員員登錄的次數(shù)數(shù)*getMen

7、nberNaame()獲獲得該會員的的真實姓名,用用于顯示歡迎迎信息。*main()方法用于于將BEANN作為一個 Appliicatioon進行測試試時使用,正正式發(fā)布時可可以刪除。 */packagee cuugg;import Java.sql.*;public classs BuyeerBeann privatte Strring mmemberrID = null ; /會員IIDprivatte Strring mmemberrName = nulll; /會員姓姓名privatte Strring ppwd = null;/密碼privatte intt logoontimees

8、 = -1;/登錄的的次數(shù)privatte staatic SStringg strDDBDrivver = “sun.jdbc.odbc.JdbcOOdbcDrriver”; /JJDBC驅(qū)動動privatte staatic SStringg strDDBUrl = “jddbc:oddbc:boookstoore”; /數(shù)數(shù)據(jù)源 ,privatte Connnectiion coonn =nnull; /連連接privatte RessultSeet rs = nulll;/結(jié)果集集publicc BuyeerBeann ()/加載JJDBC-OODBC驅(qū)動動try Classs.for

9、rName(strDBBDriveer );/捕獲異異常catchh(Javaa.langg.ClasssNotFFoundEExcepttion ee)Systtem.errr.priintln(“BuyeerBeann():” + e.ggetMesssage();/獲得登錄錄次數(shù),登錄錄的會員的名名字也在該方方法調(diào)用時獲獲得publicc int getLoogontiimes()Strinng strrSql = nulll;tryconnn = DrriverMManageer.gettConneectionn(strDDBUrl);Stattementt stmtt = coonn

10、.crreateSStatemment();strSqll = “SSelectt logoonTimees,memmbernaame frrom buuyerInnfo whhere mmemberrID = ” + membberID + “ and ppwd =” + ppwd + “”;rs = stmtt.execcuteQuuery(sstrSqll);whille (rss.nextt()/ 登錄的次數(shù)數(shù)loggontimmes = rs.geetInt(“l(fā)ogoonTimees”);/會會員姓名 meemberNName = rs.ggetStrring(“mmemberrn

11、ame”); rs.cclose();/如果果是合法會員員則將其登錄錄次數(shù)加1if (logonntimess != -1 ) strrSql = “Upddate bbuyerIInfo sset loogonTiimes = logoonTimees +1 wheree membberID = ” + memmberIDD + “”;stmmt.exeecuteUUpdatee(strSSql);stmtt.closse();connn.closse();/捕獲異異常catchh(SQLEExcepttion ee)Systtem.errr.priintln(“BuyeerBeann.ge

12、tLLogonttimes():” + e.geetMesssage();returrn loggontimmes ;/設(shè)置meemberIID屬性;publicc voiid settMembeerID(SStringg ID)this.membeerID = ID;/設(shè)置pwwd 屬性publicc voidd settPwd(SStringg passsword)this.pwd = passsword;/獲得該會會員的真實姓姓名,必須在在取該會員登登錄的次數(shù)之之后才能被賦賦予正確的值值publicc Striing geetMembberNamme()returrn memmberNa

13、ame;/測試Beean中的各各個方法是否否能夠正常工工作publicc staatic vvoid mmain(SStringg argss)BuyerrBean buyerr = neew BuyyerBeaan();buyerr.setMMemberrID(“aabcd”);buyerr.setPPwd(“11234”);Systeem.outt.prinntln(bbuyer.getLoogontiimes();Systeem.outt.prinntln(bbuyer.getMeemberNName();在BuyerBBean中用用了packkage cuug; 在發(fā)布到到WEB SS

14、ERVERR時,可以用用JAR(JJDK中帶的的打包工具)把把編譯后的BBuyerBBean.cclass 打包成JAAR文件在服服務(wù)器的環(huán)境境變量claasspatth中給予指指定,或者在在服務(wù)器cllasspaath環(huán)境變變量指定的目目錄下建一個個cuug文文件夾,把BBuyerBBean.cclass放放到cuugg目錄下。15.1.2 會員登錄錄htm與JJSP會員登錄要由兩兩個部分來完完成,第一個個頁面用于會會員輸入其IID和密碼,當(dāng)當(dāng)然首頁還可可以加一些廣廣告等的其它它信息,在本本例中略過。清單15-2 defaault.hhtm! Copyrright 19999 cuuug,l

15、iuu.CUUG ON LIINE BOOOK STTORE MEMBBER LOOGINCUUUG 網(wǎng)上書書店會員登登錄頁&nbssp;&nbssp;請輸入會員代號號和密碼: 會員代碼: 密; p;&nbssp;&nbbsp;碼: 在本例中提供了了一個文本框框供用戶輸入入會員代號和和登錄密碼,其其運行結(jié)果如如圖15-66所示,當(dāng)會會員輸入其代代碼和密碼后后調(diào)用cheeckloggon.jssp 來驗證證該網(wǎng)絡(luò)用戶戶是否是合法法會員。圖15-6 會員登錄頁頁在checkllogon.jsp 中中接收從deefaultt.htm中中由用戶所填填的會員代碼碼和密碼,把把它傳給BuuyerB

16、eean,由BBuyerBBean判斷斷該用戶的會會員代碼和密密碼的正確性性,若正確顯顯示歡迎信息息;若不正確確,則提供一一個重新登錄錄的鏈接。Checkloogon.jjsp的源代代碼如下:清單15-3 checcklogoon.jsppCUUG ONN LINEE BOOKK STORRE MMEMBERR LOGIINCUUUG 網(wǎng)上書書店 0)sessiion.puutValuue(meemberIID,meemberIID);%歡迎你你第次來到到CUUG網(wǎng)上上書店進入書書店對不起起,你的用戶戶名和密碼不不一致重重新登錄 登錄正確時的結(jié)結(jié)果如圖155-7所示,錯錯誤時的結(jié)果果如圖15-

17、8所示。圖15-7 用戶登錄正正確(會員aabcd的真真實姓名是ccuug0001)圖15-8 用戶登錄錯錯誤15.2 選選書會員登錄之后,合合法的用戶將將可以看到本本書店中可供供選擇的圖書書,并且將他他感興趣的書書放入“購物車”,在去“收銀臺”結(jié)帳之前,該該用戶可以放放棄購買其購購物車中的任任何一本書。在在此處我們用用BookBBean來獲獲取圖書的信信息,在Boooklisst.jspp中顯示這些些書。在會員選書部分分,我們?nèi)杂糜肑ava Bean來來操作數(shù)據(jù)庫庫,用jspp來做頁面表表現(xiàn)。15.2.1 選書Javva Beaan圖書信息的表結(jié)結(jié)構(gòu)如圖155-9所示,為為了便于說明明,在本

18、例中中pricee也設(shè)置成了了Strinng型,在實實際應(yīng)用中應(yīng)應(yīng)該設(shè)置成貨貨幣或浮點型型:圖15-9 圖書信息的的表結(jié)構(gòu)其中,bookkISBN是是主鍵,區(qū)分分不同的圖書書。Javaa Beann要根據(jù)不同同的圖書的bbookISSBN來獲得得其相應(yīng)的書書名、作者、出出版社、價格格、簡介等信信息。同時JJava BBean還要要有列出書店店中所有圖書書的信息的功功能。清單15-4 BookkBean.Javaa/* *BuyyerBeaan.Javva 11.10.22001 *Copyriight 20000, 20011 by cuuug ,lllp.*本Bean中中的各個方法法的功能介

19、紹紹如下:*setBoookISBNN():設(shè)置置圖書的編號號,同時根據(jù)據(jù)編號更新相相應(yīng)的書名、作作者、出版社社、價格*和和簡介*getBoookListt() 取得書庫庫中全部書的的書名、出版版社、價格、作作者等信息;*getBoookISBNN() 取得當(dāng)前前圖書的編號號 ; *geetBookkName()取得當(dāng)前圖圖書的書名;*getBoookAutthor()取得當(dāng)前圖圖書的作者;*getPuublishher()取得當(dāng)前圖圖書的出版社社信息;*getPrrice()取得當(dāng)前圖圖書的價格;* getInntroduuce()取取得當(dāng)前圖書書的簡介信息息。*main()方法用于于將BE

20、ANN作為一個 Appliicatioon進行測試試時使用,正正式發(fā)布時可可以刪除。 */packagee cuugg;import Java.sql.*;public classs BookkBean privatte Strring bbookISSBN = null;/圖書編編號privatte Strring bbookNaame = null;/書名privatte Strring bbookAuuthor = nulll;/作者privatte Strring ppublissher = nulll;/出版社社privatte Strring iintrodduce = nulll

21、;/簡介privatte Strring pprice = nulll;/價格privatte staatic SStringg strDDBDrivver = sun.jdbc.odbc.JdbcOOdbcDrriver;privatte staatic SStringg strDDBUrl = jddbc:oddbc:boookstoore;privatte Connnectiion coonn =nnull;privatte RessultSeet rs = nulll;publicc BookkBean()/加載驅(qū)驅(qū)動try Classs.forrName(strDBBDriveer

22、);catchh(Javaa.langg.ClasssNotFFoundEExcepttion ee)Systtem.errr.priintln(BookkBean (): + e.ggetMesssage();/取當(dāng)前書書庫中全部圖圖書信息publicc ResuultSett getBBookLiist()Strinng strrSql = nulll;try/建立立與數(shù)據(jù)庫的的連接connn = DrriverMManageer.gettConneectionn(strDDBUrl);Stattementt stmtt = coonn.crreateSStatemment();strSS

23、ql = Seleect boookISBBN,boookNamee,bookkAuthoor,pubblisheer,priice frrom boookInffo ;rs = stmtt.execcuteQuuery(sstrSqll);/捕獲異異常catchh(SQLEExcepttion ee)Systtem.errr.priintln(BookkBean.getBoookLisst(): + e.getMeessagee();returrn rs ;/根據(jù)圖書書的編號給圖圖書的其他信信息賦值privatte vooid geetBookkInfo(Strinng ISBBN)Stri

24、nng strrSql = nulll;bookNName = nulll;bookAAuthorr = nuull;publiisher = nulll;introoduce = nulll;pricee = nuull;try/建立立和數(shù)據(jù)庫的的連接connn = DrriverMManageer.gettConneectionn(strDDBUrl);Stattementt stmtt = coonn.crreateSStatemment();strSSql = Seleect * from bookIInfo wwhere bookIISBN = + ISBNN + ;rs = stm

25、tt.execcuteQuuery(sstrSqll);whille (rss.nextt()boookNamee = rss.getSStringg(boookNamee);boookAuthhor = rs.geetStriing(bbookAuuthor);pubblisheer = rrs.gettStrinng(puublishher);inttroducce = rrs.gettStrinng(inntroduuce);priice = rs.geetStriing(pprice);/捕獲異異常catchh(SQLEExcepttion ee)Systtem.errr.priint

26、ln(BookkBean.getBoookLisst(): + e.getMeessagee();/給圖書的的編號賦值,同同時調(diào)用函數(shù)數(shù)給圖書的其其他信息賦值值publicc voiid settBookIISBN (Strinng ISBBN)this.bookIISBN = ISBNN;getBoookInffo(boookISBNN);/取圖書編編號publicc Strring ggetBoookISBNN ()returrn boookISBNN ;/取書名publicc Striing geetBookkName()returrn boookNamee ;/取作者信信息public

27、c Striing geetBookkAuthoor()returrn boookAuthhor;/取出版社社信息publicc Striing geetPubllisherr()returrn pubblisheer;/取圖書簡簡介publicc Striing geetIntrroducee()returrn inttroducce ;/取圖書價價格publicc Striing geetPricce()returrn priice;/將Beaan作為一個個appliicatioon進行測試試用publicc staatic vvoid mmain(SStringg argss)BookB

28、Bean bbook = new BookBBean ();book.setBoookISBBN(7-5053-5316-4);Systeem.outt.prinntln(bbook.ggetBoookNamee();Systeem.outt.prinntln(bbook.ggetBoookAuthhor();Systeem.outt.prinntln(bbook.ggetPubblisheer();Systeem.outt.prinntln(bbook.ggetInttroducce();Systeem.outt.prinntln(bbook.ggetPriice();tryResuultS

29、ett tmpRRS = bbook.ggetBoookListt();whille (tmmpRS.nnext()Sysstem.oout.prrintlnn(tmpRRS.gettStrinng(boooknamme);tmpRRS.cloose();/捕獲異異常catchh(Exceeptionn e)Systtem.errr.priintln(mainn() + e.geetMesssage();15.2.2 選書JSPP會員正確登錄之之后,即可進進入書店進行行選書,我們們已經(jīng)在chheckloogon.jjsp中將會會員的代碼(mmemberrID)放入入系統(tǒng)的seessionn中,

30、為了保保證用戶只能能從主頁面登登錄進入書店店,我們在給給會員顯示可可供選擇的圖圖書之前,先先檢查sesssion中中是否有meemberIID的合法值值,如果沒有有則提示用戶戶先去登錄。清單15-5 bookklist.jspCUUG Boook Sttore OOn Linne -meember:CUUUG 網(wǎng)上書書店 請先登錄錄,然后再選書書 登錄錄 書名名 作者者 出版版社 定價價 &nbssp; a href=bookkinfo.jsp?iisbn= a hhref=Javasscriptt:opennwin()加入購物車車 查看購物車車 &nbssp;已經(jīng)登錄過的會會員和沒有登登錄過

31、的會員員進入該頁面面是的結(jié)構(gòu)分分別如圖155-10和圖圖15-111所示:正確確登錄的會員員的會員代碼碼在瀏覽器的的標(biāo)題欄顯示示為:memmber:“會員代碼”。圖15-10 會員abbcd正確登登錄圖15-11 會員未登登錄直接來選選書在本例中利用JJavaSccript語語句定義了一一個函數(shù)來將將所調(diào)用另外外的一個jssp來處理把把書加入購物物車的操作:該函數(shù)用于打開開addcaart.jssp并切將圖圖書編號作為為參數(shù)傳給aaddcarrt.jspp。addcartt.jsp利利用Cookkie來保存存所選購的圖圖書信息,CCookiee相當(dāng)于一個個購物車。為為了與其他的的Cookiie

32、變量區(qū)分分,每個寫入入Cookiie的圖書編編碼前面都加加上“ISBN”作為標(biāo)志,向向購物車中加加入圖書的代代碼如下:清單15-6 addccart.jjspfunctioon Timmer()setTiimeoutt(sellf.cloose(),100000)購物車CUUGG 網(wǎng)上訂書書系統(tǒng)圖圖書已經(jīng)成功功放入購物車車!查看購物車SHHOPPINNG CARRT提交定單 ORRDER (此窗口將為您您在10秒內(nèi)自動動關(guān)閉,您的的商品已經(jīng)安安全地保存在在購物車中。)在addcarrt.jspp中利用JaavaScrript定義義了一個函數(shù)數(shù)Timerr(),由它它來控制該窗窗口的顯示時時間(

33、)。繼續(xù)購購買部分也是是由JavaaScrippt定義的函函數(shù)來控制關(guān)關(guān)閉本窗口。其其運行結(jié)果如如圖15-112所示。圖15-12 加入購物物車無論從圖15-12還是圖圖15-133所示的界面面中,都提供供了一個查看看購物車的超超鏈接,查看看購物車的程程序如下所示示,它從Coookie中中取出圖書的的編號,并將將它傳給BoookBeaan,由BoookBeaan來獲得圖圖書的詳細(xì)資資料。查看購購物車的JSSP代碼shhoppinngcartt.jsp代代碼如下:清單15-7 shopppingccart.jjsp查看購物車 -membeer:CUUUG 網(wǎng)上書書店購物車 ISBNN 書名 單價

34、 數(shù)量 %/*讀取購物車車信息*/Cookiie ccookiees=reqquest.getCoookiess();for (int ii=0;i A hrref=bbookinnfo.jssp?isbbn= INPPUT siize=55 typpe=teext mmaxlenngth=5 vaalue= name=nnum rreadonnly A hreef=deelbookk.jsp?isbn=刪除 返回回首頁 清清空購物車 修改數(shù)量 填寫提交交訂單 查看購物車的的結(jié)果如圖115-13所所示:圖15-13 查看購物物車內(nèi)容在查看購物車內(nèi)內(nèi)容時提供了了一個刪除圖圖書的功能,其其目的是從

35、購購物車刪除不不想購買的圖圖書,其源代代碼如下:清單15-8 delbbook.jjsp刪除圖書 本例中利用jssp:forrward動動作在刪除圖圖書動作完成成之后,將頁頁面繼續(xù)轉(zhuǎn)向向購物車頁面面。即圖155-14只顯顯示一瞬間,瀏瀏覽器的內(nèi)容容由成為購物物車內(nèi)容的頁頁面。圖15-14 刪除圖書書的頁面如果一個會員選選了很多書,逐逐個刪除比較較麻煩。為了了方便會員放放棄選購的所所有圖書,重重新開始選書書,本例提供供了清空購物物車程序(eemptyccart.jjsp),用用于清空購物物車,其原理理與刪除圖書書相同,只是是把全部的CCookiee中圖書的有有關(guān)的內(nèi)容都都清空了。其其代碼如下:清

36、單15-9 empttycartt.jsp%/*清空Coookie(購購物車)信息*/Cookie coookies=requeest.geetCookkies();for (innt i=00;i清空購物車 圖15-15 清空購物物車的頁面從圖書選擇頁面面和購物車頁頁面,點圖書書名稱,都可可以查看圖書書的詳細(xì)信息息,查看圖書書詳細(xì)信息的的jsp仍用用BookBBean來獲獲取圖書的詳詳細(xì)信息,只只是在該頁中中可以看到更更加詳細(xì)的信信息:清單15-100 boookinfoo.jsp圖書信息 ISBBN 書名 出版社社 作者/譯者 圖書價價格 內(nèi)容容簡介 a hhref=Javasscript

37、t:opennwin()加入購購物車 查看購物車車 返回首頁頁 其運行結(jié)果如圖圖15-166所示。圖15-16 圖書詳細(xì)細(xì)信息15.3 定定單提交及查查詢用戶一旦確定購購物車中所選選的圖書都是是其所要購買買的,就要到到去提交其定定單,以便書書店按照相應(yīng)應(yīng)的方式進行行處理。而且且,為方便用用戶是否已經(jīng)經(jīng)提交定單,及及定單的狀態(tài)態(tài),本例提供供了定單查詢詢功能。在此此處我們用OOrderBBean來將將定單提交到到數(shù)據(jù)庫中,在在orderr.jsp中中顯示并提交交定單信息,qqueryoorder.jsp來查查詢定單。在會員選書部分分,我們?nèi)杂糜肑ava Bean來來操作數(shù)據(jù)庫庫,用jspp來做頁面

38、表表現(xiàn)。15.3.1 定單提交交Java Bean為了減少數(shù)據(jù)冗冗余,定單信信息由兩張表表來記錄其信信息:ordderInffo,記錄定定單的有關(guān)公公用信息,oorderddetaill,記錄該定定單包含哪些些書籍及數(shù)量量,表結(jié)構(gòu)分分別如下:圖15-17 定單信息表表結(jié)構(gòu)圖15-18 定單詳細(xì)所有的對數(shù)據(jù)庫庫的操作都由由JavaBBean來完完成,其代碼碼如下:清單15-111 OrdderBeaan.Javvapackagee cuugg;import Java.sql.*;public classs OrdeerBeann privatte staatic SStringg strDDBD

39、rivver = sun.jdbc.odbc.JdbcOOdbcDrriver;privatte staatic SStringg strDDBUrl = jddbc:oddbc:boookstoore;privatte Connnectiion coonn =nnull;privatte RessultSeet rs = nulll;privatte Javva.lanng.Strring bbookinnfo = null;privatte Javva.lanng.Strring ooderprrice = nulll;privatte Javva.lanng.Strring oorder

40、DDate = nulll;privatte Javva.lanng.Strring oorderIID = nnull;privatte Javva.lanng.Strring oorderRRem = null;privatte Javva.lanng.Strring rreceivverAdddress = nulll;privatte Javva.lanng.Strring rreceivverNamme = nnull;privatte Javva.lanng.Strring rreceivverZipp = nuull;privatte Javva.lanng.Strring uu

41、serIDD = nuull;publicc OrdeerBeann()try Classs.forrName(strDBBDriveer );catchh(Javaa.langg.ClasssNotFFoundEExcepttion ee)Systtem.errr.priintln(OrdeerBeann (): + e.getMeessagee();publicc staatic vvoid mmain(SStringg argss)/* * 返回定單單的總價。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettOd

42、erpprice() returrn odeerpricce;/* *返回定單的的日期 。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettOrderrDate() orderrDate = neww Javaa.utill.Datee().tooStrinng();returrn ordderDatte;/* * 返回定單單的ID號。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettOrderrID() returrn ordderID;/*

43、 * 返回定單單的備注信息息。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettOrderrRem() returrn ordderRemm;/* * 返回接收收者的地址 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettReceiiverAdddresss() returnn receeiverAAddresss;/* * 返回接收收者的姓名。 * retturn JJava.llang.SStringg */public Java.lang.

44、Strinng gettReceiiverNaame() returrn recceiverrName;/* * 返回接收收者的郵政編編碼。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettReceiiverZiip() returrn recceiverrZip;/* * 獲得用戶戶ID。 * retturn JJava.llang.SStringg */public Java.lang.Strinng gettUserIID() returrn useerID;/* * 給圖書信信息賦值。 * parram nee

45、wBookks Javva.utiil.Proopertiies */public void setBoookinffo(Javva.lanng.Strring nnewBoookinfoo) bookiinfo = newBBookinnfo;creatteNewOOrder();int ffromInndex = 0;int ttmpInddex = 0;int ttmpEndd = 0;Strinng strrSql = nulll;tryconnn = DrriverMManageer.gettConneectionn(strDDBUrl);Stattementt stmtt = co

46、onn.crreateSStatemment();whille(boookinfoo.indeexof(;,frromInddex) != -1 )tmppEnd = bookkinfo.indexxOf(;,froomIndeex);tmppIndexx = boookinffo.lasstIndeexof(=,tmmpEnd);strrSql = inssert iinto oorderddetaill (ordderID ,bookkISBN ,bookkcountt)+ vallues( geetOrdeerID() + , + bbookinnfo.suubstriing(frrom

47、Inddex ,ttmpInddex) + , + bookiinfo.ssubstrring(ttmpInddex+1 ,tmpEEnd) + ) ;stmmt.exeecuteUUpdatee(strSSql);frommIndexx = tmmpEnd + 1;stmtt.closse();connn.closse();catchh(SQLEExcepttion ee)Systtem.errr.priintln(BuyeerBeann.getLLogonttimes(): + e.geetMesssage();/* *給定單的總總價賦值。 * parram neewOderrpricee

48、 Javaa.langg.Striing */public void setOdderpriice(Jaava.laang.Sttring newOdderpriice) oderpprice = newwOderpprice;/* * 給定單的的備注賦值。 * parram neewOrdeerRem Java.lang.Strinng */public void setOrrderReem(Javva.lanng.Strring nnewOrdderRemm) orderrRem = newOOrderRRem;/* * 給接收者者的地址賦值值。 * parram neewReceeive

49、rAAddresss Javva.lanng.Strring */public void setReeceiveerAddrress(JJava.llang.SStringg newRReceivverAdddress) receivverAdddress = newwReceiiverAdddresss;/* * 給接收者者的姓名賦值值。 * parram neewReceeiverNName JJava.llang.SStringg */public void setReeceiveerNamee(Javaa.langg.Striing neewReceeiverNName) receiv

50、verNamme = nnewRecceiverrName;/* * 給接收者者的郵政編碼碼代碼賦值。 * parram neewReceeiverZZip Jaava.laang.Sttring */public void setReeceiveerZip(Java.lang.Strinng newwReceiiverZiip) receiiverZiip = nnewRecceiverrZip;/* * 給用戶代代碼賦值。 * parram neewUserrID Jaava.laang.Sttring */public void setUsserID(Java.lang.Strinng

51、newwUserIID) userIID = nnewUseerID;/* * 創(chuàng)建一個個新定單 */privatee voidd creaateNewwOrderr() Strinng strrSql = nulll;tryconnn = DrriverMManageer.gettConneectionn(strDDBUrl);Stattementt stmtt = coonn.crreateSStatemment();strSSql = inseert innto orrderInnfo (uuserIDD,receeiverNName,receiveerAddrress,rreceivv

52、erZipp,ordeerRem,orderrPricee,Ordeerdatee)+ valuues( gettUserIID() + , + getReeceiveerNamee() + , + ggetRecceiverrAddreess() + , + getReeceiveerZip() + , + geetOrdeerRem() + , + ggetOrdderPriice() + , geetOrdeerDatee() + ) ;stmt.execuuteUpddate(sstrSqll);strSqql = selecct maxx(OrdeerID) from ordeerInfoo wherre useerID = ggetUseerID() + annd recceiverrName = + gettReceiiverNaame(

溫馨提示

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

評論

0/150

提交評論