版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE 第15章 網(wǎng)上書店實(shí)例在本章中我們使用JSP和Java Bean來構(gòu)建一個(gè)網(wǎng)上書店。本章介紹的例子可以分成兩大部分,第一部分是普通程序,用于客戶在網(wǎng)上選購圖書,第二部分是管理程序,用于在服務(wù)器端處理客戶的定單??蛻舳顺绦蛴梢韵聨讉€(gè)部分構(gòu)成:default.jsp:會員登錄界面(首頁);checklogon.jsp:檢測登錄代碼和密碼是否一致,根據(jù)由JavaBean返回的結(jié)果顯示不同的信息。BuyerBean:會員的合法性檢驗(yàn)所用的Bean;booklist.jsp:給登錄會員顯示當(dāng)前書店中可供選擇的圖書;addcart.jsp:將所選的圖書加入購物車;shoppingcart.jsp
2、:查看購物車的內(nèi)容;本例的數(shù)據(jù)庫采用Access(.MDB數(shù)據(jù)庫),對數(shù)據(jù)庫的訪問采用便于理解的JDBC-ODBC方式,在使用本例前先在本地?cái)?shù)據(jù)庫建立一個(gè)ODBC數(shù)據(jù)源:bookstore。設(shè)置步驟如下:(1)在開始-設(shè)置-控制面版(Win98、NT4.0)中選取“數(shù)據(jù)源(ODBC)”;在Win 2000 Professional和Server中分別位于“開始-設(shè)置-控制面版-管理工具”和“開始-程序-管理工具”下。(2)啟動“數(shù)據(jù)源(ODBC)”配置程序,界面如圖15-1所示。圖15-1 ODBC數(shù)據(jù)源管理界面(3)在圖15-1中“系統(tǒng)DSN”選項(xiàng)下單擊“添加”按鈕,來添加一個(gè)系統(tǒng)的數(shù)據(jù)源(
3、DSN),則出現(xiàn)如圖15-2所示數(shù)據(jù)源驅(qū)動程序選擇界面:圖15-2 數(shù)據(jù)源驅(qū)動程序選擇界面(4)在圖15-2中選擇“Microsoft Access Driver (*.mdb)”單擊“完成”加載Access數(shù)據(jù)庫的驅(qū)動,則出現(xiàn)如圖15-3所示數(shù)據(jù)庫ODBC安裝界面:圖15-3 數(shù)據(jù)庫ODBC安裝界面(5)在圖15-3中單擊“選擇(S)”按鈕,啟動一個(gè)類似資源管理器的界面來選擇數(shù)據(jù)庫,如圖15-4所示,在圖15-4所示的界面中選擇bookstore.mdb。圖15-4 數(shù)據(jù)庫選擇界面15.1 會員登錄做一個(gè)網(wǎng)上書店,在顧客開始購書之前,必須要記錄用戶的一些信息以便用戶在不同的分類、不同的頁面購
4、書時(shí),最后能夠去收款臺統(tǒng)一結(jié)帳,而且網(wǎng)上書店同時(shí)有許多人在選購圖書,也要求對不同的顧客進(jìn)行區(qū)分,我們可以要求顧客在購書之前進(jìn)行注冊成為會員,以后只用會員代碼和密碼即可登錄。為了便于說明現(xiàn)在的電子商務(wù)網(wǎng)站,由JSP做頁面表現(xiàn),由Java Bean做應(yīng)用邏輯的結(jié)構(gòu),在本例中將會員登錄程序分成兩大部分:一、Java Bean用于對數(shù)據(jù)庫的操作,驗(yàn)證用戶名和密碼是否正確;二、JSP頁面部分,用于供用戶會員代碼和密碼以及顯示驗(yàn)證結(jié)果。15.1.1 會員登錄Java Bean我們網(wǎng)上書店中的會員信息的庫結(jié)構(gòu)如圖15-5所示:圖15-5 會員信息庫其中memberID 是主鍵,用于區(qū)分不同的會員,新會員注冊
5、時(shí)只能使用沒有被使用的用戶代碼。在驗(yàn)證時(shí)我們只要使用驗(yàn)證用戶的memberID和其pwd是否一致即可判斷該用戶是否合法,如果合法則其登錄次數(shù)加1。下面是用戶驗(yàn)證部分的Java Bean的代碼清單15-1 BuyerBean.Java/* *BuyerBean.Java 1.10.2001 *Copyright 2000, 2001 by cuug llp.*本Bean中有兩個(gè)set方法和兩個(gè)get 方法:*setMemberID( ) 對BuyerBean中的memberID屬性進(jìn)行賦值;*setPwd( )對BuyerBean中的 pwd 屬性進(jìn)行賦值; *getLogontimes( )
6、取該會員登錄的次數(shù)*getMenberName()獲得該會員的真實(shí)姓名,用于顯示歡迎信息。*main( )方法用于將BEAN作為一個(gè) Application進(jìn)行測試時(shí)使用,正式發(fā)布時(shí)可以刪除。 */package cuug;import Java.sql.*;public class BuyerBean private String memberID = null ; /會員IDprivate String memberName = null; /會員姓名private String pwd = null;/密碼private int logontimes = -1;/登錄的次數(shù)private
7、 static String strDBDriver = “sun.jdbc.odbc.JdbcOdbcDriver”; /JDBC驅(qū)動private static String strDBUrl = “jdbc:odbc:bookstore”; /數(shù)據(jù)源 ,private Connection conn =null; /連接private ResultSet rs = null;/結(jié)果集public BuyerBean ( )/加載JDBC-ODBC驅(qū)動try Class.forName(strDBDriver );/捕獲異常catch(Java.lang.ClassNotFoundExce
8、ption e)System.err.println(“BuyerBean():” + e.getMessage();/獲得登錄次數(shù),登錄的會員的名字也在該方法調(diào)用時(shí)獲得public int getLogontimes()String strSql = null;tryconn = DriverManager.getConnection(strDBUrl);Statement stmt = conn.createStatement();strSql = “Select logonTimes,membername from buyerInfo where memberID = ” + membe
9、rID + “ and pwd =” + pwd + “”;rs = stmt.executeQuery(strSql);while (rs.next()/ 登錄的次數(shù)logontimes = rs.getInt(“l(fā)ogonTimes”);/會員姓名 memberName = rs.getString(“membername”); rs.close();/如果是合法會員則將其登錄次數(shù)加1if (logontimes != -1 ) strSql = “Update buyerInfo set logonTimes = logonTimes +1 where memberID = ” + me
10、mberID + “”;stmt.executeUpdate(strSql);stmt.close();conn.close();/捕獲異常catch(SQLException e)System.err.println(“BuyerBean.getLogontimes( ):” + e.getMessage();return logontimes ;/設(shè)置memberID屬性;public void setMemberID(String ID)this.memberID = ID;/設(shè)置pwd 屬性public void setPwd(String password)this.pwd = pa
11、ssword;/獲得該會員的真實(shí)姓名,必須在取該會員登錄的次數(shù)之后才能被賦予正確的值public String getMemberName()return memberName;/測試Bean中的各個(gè)方法是否能夠正常工作public static void main(String args)BuyerBean buyer = new BuyerBean();buyer.setMemberID(“abcd”);buyer.setPwd(“1234”);System.out.println(buyer.getLogontimes();System.out.println(buyer.getMemb
12、erName();在BuyerBean中用了package cuug; 在發(fā)布到WEB SERVER時(shí),可以用JAR(JDK中帶的打包工具)把編譯后的BuyerBean.class 打包成JAR文件在服務(wù)器的環(huán)境變量classpath中給予指定,或者在服務(wù)器classpath環(huán)境變量指定的目錄下建一個(gè)cuug文件夾,把BuyerBean.class放到cuug目錄下。15.1.2 會員登錄htm與JSP會員登錄要由兩個(gè)部分來完成,第一個(gè)頁面用于會員輸入其ID和密碼,當(dāng)然首頁還可以加一些廣告等的其它信息,在本例中略過。清單15-2 default.htm! Copyright 1999 cuug
13、,liu.CUUG ON LINE BOOK STORE MEMBER LOGINCUUG 網(wǎng)上書店會員登錄頁請輸入會員代號和密碼: 會員代碼: 密碼: 在本例中提供了一個(gè)文本框供用戶輸入會員代號和登錄密碼,其運(yùn)行結(jié)果如圖15-6所示,當(dāng)會員輸入其代碼和密碼后調(diào)用checklogon.jsp 來驗(yàn)證該網(wǎng)絡(luò)用戶是否是合法會員。圖15-6 會員登錄頁在checklogon.jsp 中接收從default.htm中由用戶所填的會員代碼和密碼,把它傳給BuyerBean,由BuyerBean判斷該用戶的會員代碼和密碼的正確性,若正確顯示歡迎信息;若不正確,則提供一個(gè)重新登錄的鏈接。Checklogon
14、.jsp的源代碼如下:清單15-3 checklogon.jspCUUG ON LINE BOOK STORE MEMBER LOGINCUUG 網(wǎng)上書店 0)session.putValue(memberID,memberID);%歡迎你第次來到CUUG網(wǎng)上書店進(jìn)入書店對不起,你的用戶名和密碼不一致重新登錄 登錄正確時(shí)的結(jié)果如圖15-7所示,錯(cuò)誤時(shí)的結(jié)果如圖15-8所示。圖15-7 用戶登錄正確(會員abcd的真實(shí)姓名是cuug001)圖15-8 用戶登錄錯(cuò)誤15.2 選書會員登錄之后,合法的用戶將可以看到本書店中可供選擇的圖書,并且將他感興趣的書放入“購物車”,在去“收銀臺”結(jié)帳之前,該用
15、戶可以放棄購買其購物車中的任何一本書。在此處我們用BookBean來獲取圖書的信息,在Booklist.jsp中顯示這些書。在會員選書部分,我們?nèi)杂肑ava Bean來操作數(shù)據(jù)庫,用jsp來做頁面表現(xiàn)。15.2.1 選書Java Bean圖書信息的表結(jié)構(gòu)如圖15-9所示,為了便于說明,在本例中price也設(shè)置成了String型,在實(shí)際應(yīng)用中應(yīng)該設(shè)置成貨幣或浮點(diǎn)型:圖15-9 圖書信息的表結(jié)構(gòu)其中,bookISBN是主鍵,區(qū)分不同的圖書。Java Bean要根據(jù)不同的圖書的bookISBN來獲得其相應(yīng)的書名、作者、出版社、價(jià)格、簡介等信息。同時(shí)Java Bean還要有列出書店中所有圖書的信息的功
16、能。清單15-4 BookBean.Java/* *BuyerBean.Java 1.10.2001 *Copyright 2000, 2001 by cuug ,llp.*本Bean中的各個(gè)方法的功能介紹如下:*setBookISBN():設(shè)置圖書的編號,同時(shí)根據(jù)編號更新相應(yīng)的書名、作者、出版社、價(jià)格*和簡介*getBookList() 取得書庫中全部書的書名、出版社、價(jià)格、作者等信息;*getBookISBN() 取得當(dāng)前圖書的編號 ; *getBookName()取得當(dāng)前圖書的書名;*getBookAuthor()取得當(dāng)前圖書的作者;*getPublisher()取得當(dāng)前圖書的出版社信息
17、;*getPrice()取得當(dāng)前圖書的價(jià)格;* getIntroduce()取得當(dāng)前圖書的簡介信息。*main()方法用于將BEAN作為一個(gè) Application進(jìn)行測試時(shí)使用,正式發(fā)布時(shí)可以刪除。 */package cuug;import Java.sql.*;public class BookBean private String bookISBN = null;/圖書編號private String bookName = null;/書名private String bookAuthor = null;/作者private String publisher = null;/出版社pr
18、ivate String introduce = null;/簡介private String price = null;/價(jià)格private static String strDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;private static String strDBUrl = jdbc:odbc:bookstore;private Connection conn =null;private ResultSet rs = null;public BookBean()/加載驅(qū)動try Class.forName(strDBDriver );catch(
19、Java.lang.ClassNotFoundException e)System.err.println(BookBean (): + e.getMessage();/取當(dāng)前書庫中全部圖書信息public ResultSet getBookList()String strSql = null;try/建立與數(shù)據(jù)庫的連接conn = DriverManager.getConnection(strDBUrl);Statement stmt = conn.createStatement();strSql = Select bookISBN,bookName,bookAuthor,publisher
20、,price from bookInfo ;rs = stmt.executeQuery(strSql);/捕獲異常catch(SQLException e)System.err.println(BookBean.getBookList(): + e.getMessage();return rs ;/根據(jù)圖書的編號給圖書的其他信息賦值private void getBookInfo(String ISBN)String strSql = null;bookName = null;bookAuthor = null;publisher = null;introduce = null;price
21、= null;try/建立和數(shù)據(jù)庫的連接conn = DriverManager.getConnection(strDBUrl);Statement stmt = conn.createStatement();strSql = Select * from bookInfo where bookISBN = + ISBN + ;rs = stmt.executeQuery(strSql);while (rs.next()bookName = rs.getString(bookName);bookAuthor = rs.getString(bookAuthor);publisher = rs.ge
22、tString(publisher);introduce = rs.getString(introduce);price = rs.getString(price);/捕獲異常catch(SQLException e)System.err.println(BookBean.getBookList(): + e.getMessage();/給圖書的編號賦值,同時(shí)調(diào)用函數(shù)給圖書的其他信息賦值public void setBookISBN (String ISBN)this.bookISBN = ISBN;getBookInfo(bookISBN);/取圖書編號public String getBo
23、okISBN ()return bookISBN ;/取書名public String getBookName()return bookName ;/取作者信息public String getBookAuthor()return bookAuthor;/取出版社信息public String getPublisher()return publisher;/取圖書簡介public String getIntroduce()return introduce ;/取圖書價(jià)格public String getPrice()return price;/將Bean作為一個(gè)application進(jìn)行測試用
24、public static void main(String args)BookBean book = new BookBean ();book.setBookISBN(7-5053-5316-4);System.out.println(book.getBookName();System.out.println(book.getBookAuthor();System.out.println(book.getPublisher();System.out.println(book.getIntroduce();System.out.println(book.getPrice();tryResult
25、Set tmpRS = book.getBookList();while (tmpRS.next()System.out.println(tmpRS.getString(bookname);tmpRS.close();/捕獲異常catch(Exception e)System.err.println(main() + e.getMessage();15.2.2 選書JSP會員正確登錄之后,即可進(jìn)入書店進(jìn)行選書,我們已經(jīng)在checklogon.jsp中將會員的代碼(memberID)放入系統(tǒng)的session中,為了保證用戶只能從主頁面登錄進(jìn)入書店,我們在給會員顯示可供選擇的圖書之前,先檢查ses
26、sion中是否有memberID的合法值,如果沒有則提示用戶先去登錄。清單15-5 booklist.jspCUUG Book Store On Line -member:CUUG 網(wǎng)上書店 請先登錄,然后再選書 登錄 書名 作者 出版社 定價(jià) a href=bookinfo.jsp?isbn= a href=Javascript:openwin()加入購物車 der=0 查看購物車 已經(jīng)登錄過的會員和沒有登錄過的會員進(jìn)入該頁面是的結(jié)構(gòu)分別如圖15-10和圖15-11所示:正確登錄的會員的會員代碼在瀏覽器的標(biāo)題欄顯示為:member:“會員代碼”。圖15-10 會員abcd正確登錄圖15-11
27、 會員未登錄直接來選書在本例中利用JavaScript語句定義了一個(gè)函數(shù)來將所調(diào)用另外的一個(gè)jsp來處理把書加入購物車的操作:該函數(shù)用于打開addcart.jsp并切將圖書編號作為參數(shù)傳給addcart.jsp。addcart.jsp利用Cookie來保存所選購的圖書信息,Cookie相當(dāng)于一個(gè)購物車。為了與其他的Cookie變量區(qū)分,每個(gè)寫入Cookie的圖書編碼前面都加上“ISBN”作為標(biāo)志,向購物車中加入圖書的代碼如下:清單15-6 addcart.jspfunction Timer()setTimeout(self.close(),10000)購物車CUUG 網(wǎng)上訂書系統(tǒng)圖書已經(jīng)成功放
28、入購物車!查看購物車SHOPPING CART提交定單 ORDER (此窗口將為您在10秒內(nèi)自動關(guān)閉,您的商品已經(jīng)安全地保存在購物車中。)在addcart.jsp中利用JavaScript定義了一個(gè)函數(shù)Timer(),由它來控制該窗口的顯示時(shí)間()。繼續(xù)購買部分也是由JavaScript定義的函數(shù)來控制關(guān)閉本窗口。其運(yùn)行結(jié)果如圖15-12所示。圖15-12 加入購物車無論從圖15-12還是圖15-13所示的界面中,都提供了一個(gè)查看購物車的超鏈接,查看購物車的程序如下所示,它從Cookie中取出圖書的編號,并將它傳給BookBean,由BookBean來獲得圖書的詳細(xì)資料。查看購物車的JSP代碼
29、shoppingcart.jsp代碼如下:清單15-7 shoppingcart.jsp查看購物車 -member:CUUG 網(wǎng)上書店購物車 ISBN 書名 單價(jià) 數(shù)量 %/*讀取購物車信息*/Cookie cookies=request.getCookies();for (int i=0;i A href=bookinfo.jsp?isbn= INPUT size=5 type=text maxlength=5 value= name=num readonly A href=delbook.jsp?isbn=刪除 返回首頁 清空購物車 修改數(shù)量 填寫提交訂單 查看購物車的結(jié)果如圖15-13所
30、示:圖15-13 查看購物車內(nèi)容在查看購物車內(nèi)容時(shí)提供了一個(gè)刪除圖書的功能,其目的是從購物車刪除不想購買的圖書,其源代碼如下:清單15-8 delbook.jsp刪除圖書 本例中利用jsp:forward動作在刪除圖書動作完成之后,將頁面繼續(xù)轉(zhuǎn)向購物車頁面。即圖15-14只顯示一瞬間,瀏覽器的內(nèi)容由成為購物車內(nèi)容的頁面。圖15-14 刪除圖書的頁面如果一個(gè)會員選了很多書,逐個(gè)刪除比較麻煩。為了方便會員放棄選購的所有圖書,重新開始選書,本例提供了清空購物車程序(emptycart.jsp),用于清空購物車,其原理與刪除圖書相同,只是把全部的Cookie中圖書的有關(guān)的內(nèi)容都清空了。其代碼如下:清單
31、15-9 emptycart.jsp%/*清空Cookie(購物車)信息*/Cookie cookies=request.getCookies();for (int i=0;i清空購物車 圖15-15 清空購物車的頁面從圖書選擇頁面和購物車頁面,點(diǎn)圖書名稱,都可以查看圖書的詳細(xì)信息,查看圖書詳細(xì)信息的jsp仍用BookBean來獲取圖書的詳細(xì)信息,只是在該頁中可以看到更加詳細(xì)的信息:清單15-10 bookinfo.jsp圖書信息 ISBN 書名 出版社 作者/譯者 圖書價(jià)格 內(nèi)容簡介 a href=Javascript:openwin()加入購物車 查看購物車 返回首頁 其運(yùn)行結(jié)果如圖15-
32、16所示。圖15-16 圖書詳細(xì)信息15.3 定單提交及查詢用戶一旦確定購物車中所選的圖書都是其所要購買的,就要到去提交其定單,以便書店按照相應(yīng)的方式進(jìn)行處理。而且,為方便用戶是否已經(jīng)提交定單,及定單的狀態(tài),本例提供了定單查詢功能。在此處我們用OrderBean來將定單提交到數(shù)據(jù)庫中,在order.jsp中顯示并提交定單信息,queryorder.jsp來查詢定單。在會員選書部分,我們?nèi)杂肑ava Bean來操作數(shù)據(jù)庫,用jsp來做頁面表現(xiàn)。15.3.1 定單提交Java Bean為了減少數(shù)據(jù)冗余,定單信息由兩張表來記錄其信息:orderInfo,記錄定單的有關(guān)公用信息,orderdetail
33、,記錄該定單包含哪些書籍及數(shù)量,表結(jié)構(gòu)分別如下:圖15-17 定單信息表結(jié)構(gòu)圖15-18 定單詳細(xì)所有的對數(shù)據(jù)庫的操作都由JavaBean來完成,其代碼如下:清單15-11 OrderBean.Javapackage cuug;import Java.sql.*;public class OrderBean private static String strDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;private static String strDBUrl = jdbc:odbc:bookstore;private Connection conn =nu
34、ll;private ResultSet rs = null;private Java.lang.String bookinfo = null;private Java.lang.String oderprice = null;private Java.lang.String orderDate = null;private Java.lang.String orderID = null;private Java.lang.String orderRem = null;private Java.lang.String receiverAddress = null;private Java.la
35、ng.String receiverName = null;private Java.lang.String receiverZip = null;private Java.lang.String userID = null;public OrderBean()try Class.forName(strDBDriver );catch(Java.lang.ClassNotFoundException e)System.err.println(OrderBean (): + e.getMessage();public static void main(String args)/* * 返回定單的
36、總價(jià)。 * return Java.lang.String */public Java.lang.String getOderprice() return oderprice;/* *返回定單的日期 。 * return Java.lang.String */public Java.lang.String getOrderDate() orderDate = new Java.util.Date().toString();return orderDate;/* * 返回定單的ID號。 * return Java.lang.String */public Java.lang.String get
37、OrderID() return orderID;/* * 返回定單的備注信息。 * return Java.lang.String */public Java.lang.String getOrderRem() return orderRem;/* * 返回接收者的地址 * return Java.lang.String */public Java.lang.String getReceiverAddress() return receiverAddress;/* * 返回接收者的姓名。 * return Java.lang.String */public Java.lang.String
38、getReceiverName() return receiverName;/* * 返回接收者的郵政編碼。 * return Java.lang.String */public Java.lang.String getReceiverZip() return receiverZip;/* * 獲得用戶ID。 * return Java.lang.String */public Java.lang.String getUserID() return userID;/* * 給圖書信息賦值。 * param newBooks Java.util.Properties */public void
39、setBookinfo(Java.lang.String newBookinfo) bookinfo = newBookinfo;createNewOrder();int fromIndex = 0;int tmpIndex = 0;int tmpEnd = 0;String strSql = null;tryconn = DriverManager.getConnection(strDBUrl);Statement stmt = conn.createStatement();while(bookinfo.indexof(;,fromIndex) != -1 )tmpEnd = bookinf
40、o.indexOf(;,fromIndex);tmpIndex = bookinfo.lastIndexof(=,tmpEnd);strSql = insert into orderdetail (orderID ,bookISBN ,bookcount)+ values( getOrderID() + , + bookinfo.substring(fromIndex ,tmpIndex) + , + bookinfo.substring(tmpIndex+1 ,tmpEnd) + ) ;stmt.executeUpdate(strSql);fromIndex = tmpEnd + 1;stm
41、t.close();conn.close();catch(SQLException e)System.err.println(BuyerBean.getLogontimes(): + e.getMessage();/* *給定單的總價(jià)賦值。 * param newOderprice Java.lang.String */public void setOderprice(Java.lang.String newOderprice) oderprice = newOderprice;/* * 給定單的備注賦值。 * param newOrderRem Java.lang.String */publ
42、ic void setOrderRem(Java.lang.String newOrderRem) orderRem = newOrderRem;/* * 給接收者的地址賦值。 * param newReceiverAddress Java.lang.String */public void setReceiverAddress(Java.lang.String newReceiverAddress) receiverAddress = newReceiverAddress;/* * 給接收者的姓名賦值。 * param newReceiverName Java.lang.String */p
43、ublic void setReceiverName(Java.lang.String newReceiverName) receiverName = newReceiverName;/* * 給接收者的郵政編碼代碼賦值。 * param newReceiverZip Java.lang.String */public void setReceiverZip(Java.lang.String newReceiverZip) receiverZip = newReceiverZip;/* * 給用戶代碼賦值。 * param newUserID Java.lang.String */public
44、 void setUserID(Java.lang.String newUserID) userID = newUserID;/* * 創(chuàng)建一個(gè)新定單 */private void createNewOrder() String strSql = null;tryconn = DriverManager.getConnection(strDBUrl);Statement stmt = conn.createStatement();strSql = insert into orderInfo (userID,receiverName,receiverAddress,receiverZip,ord
45、erRem,orderPrice,Orderdate)+ values( getUserID() + , + getReceiverName() + , + getReceiverAddress() + , + getReceiverZip() + , + getOrderRem() + , + getOrderPrice() + , getOrderDate() + ) ;stmt.executeUpdate(strSql);strSql = select max(OrderID) from orderInfo where userID = getUserID() + and receiverName = +
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)景點(diǎn)評級標(biāo)準(zhǔn)
- 手術(shù)中的電生理監(jiān)測
- 自制禮物課件教學(xué)課件
- 河南省2024九年級語文上冊第二單元8就英法聯(lián)軍遠(yuǎn)征中國致巴特勒上尉的信課件新人教版
- 慢病調(diào)理中心介紹
- 消防演練總結(jié)講評
- 農(nóng)業(yè)物聯(lián)網(wǎng)導(dǎo)論
- 感恩課件英文教學(xué)課件
- 玉米灰斑病病害循環(huán)
- 氣管切開燒傷病人的護(hù)理
- 2024至2030年中國沖調(diào)飲料行業(yè)市場深度研究及投資規(guī)劃建議報(bào)告
- 高考英語讀后續(xù)寫高分素材總結(jié)之動物描寫句型清單
- 小型電站下游河道減脫水防治技術(shù)導(dǎo)則
- 鍋爐和壓力容器 第1部分:性能要求 征求意見稿
- 石油化工生產(chǎn)和危險(xiǎn)化學(xué)品基礎(chǔ)知識考試題庫500題(含答案)
- 金屬礦產(chǎn)資源開發(fā)利用方案編制提綱
- 供水服務(wù)滿意度調(diào)查協(xié)議
- 《工程泥漿技術(shù)標(biāo)準(zhǔn)》
- 部編版語文二年級上冊《口語交際 有趣的動物》(教案)
- 消化道出血合并急性心肌梗死的治療
- 國家開放大學(xué)本科《納稅籌劃》在線形考(形考任務(wù)一至五)試題及答案
評論
0/150
提交評論