版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 畢 業(yè) 論 文</p><p> 題 目: 校園網上交易系統(tǒng) </p><p> 院 (系): 理 學 院 </p><p> 學生姓名: </p><p&g
2、t; 導師姓名: </p><p> 完成日期: 2012 年6 月6日 </p><p> 誠 信 聲 明</p><p><b> 本人聲明:</b></p><p> 1、本人所呈交的畢業(yè)設計(
3、論文)是在老師指導下進行的研究工作及取得的研究成果;</p><p> 2、據查證,除了文中特別加以標注和致謝的地方外,畢業(yè)設計(論文)中不包含其他人已經公開發(fā)表過的研究成果,也不包含為獲得其他教育機構的學位而使用過的材料;</p><p> 3、我承諾,本人提交的畢業(yè)設計(論文)中的所有內容均真實、可信。</p><p> 作者簽名:
4、 日期: 年 月 日</p><p> 畢業(yè)設計(論文)任務書</p><p> 題 目: 校園交易管理系統(tǒng) </p><p> 一﹑基本任務及要求:</p><p> 1.基本任務:首先進行系
5、統(tǒng)分析,畫出數據流圖,設計出系統(tǒng)的邏輯模型;根據數據流程圖,</p><p> 畫出各模塊結構圖,設計出系統(tǒng)的物理模型;根據各模塊結構圖,編寫程序代碼,</p><p> 最后進行測試。 </p><p> 2.基本要求:充分利用現(xiàn)有的軟硬件資源,按
6、照在線考試需求分析,采用模塊化程序設計方法,</p><p> 實現(xiàn)在線考試,系統(tǒng)管理。 </p><p> 二﹑進度安排及完成時間:</p><p> 第一階段 ( 第1-4周) :進行調研,查閱相關資料,撰寫開題報告,并于第4周星期五交開題報 告;
7、 </p><p> 第二階段 ( 第5-12周) :在指導教師的指導下,對課題進行研究,按預定要求獲得畢業(yè) </p><p> 論文開題報告中的預期結果,并撰寫畢業(yè)論文,第12周五之前交初稿; </p>&
8、lt;p> 第三階段 (第13-14周) :指導教師對畢業(yè)論文進行批閱,提出修改意見并指導學生進行 </p><p> 畢業(yè)論文的修改,并檢查算法的實現(xiàn)情況(如程序的可行性和通用性等); </p><p> 第四階段 (第15周) :指導教師指導學生將畢業(yè)論文定稿,并準備畢業(yè)論文答辯; </p><p>
9、; 第五階段 (第16周) :進行畢業(yè)論文答辯。 </p><p><b> 目 錄</b></p><p><b> 摘要1</b></p><p> Abstract1</p><p>
10、<b> 前言2</b></p><p> 第1章 設計前的分析5</p><p> 1.1 系統(tǒng)概述5</p><p><b> 1.2需求背景5</b></p><p> 1.3系統(tǒng)開發(fā)目的及意義5</p><p> 第2章 系統(tǒng)概要設計7<
11、/p><p><b> 2.1項目規(guī)劃7</b></p><p> 2.2系統(tǒng)總體功能結構7</p><p> 第3章 系統(tǒng)詳細設計設計8</p><p> 3.1 數據庫設計8</p><p> 3.2 系統(tǒng)主要功能模塊設計10</p><p> 3.2
12、.1 系統(tǒng)功能模塊10</p><p> 3.2.2 交易系統(tǒng)功能模塊圖11</p><p> 3.2.3詳細功能分析11</p><p> 3.2.4主要模塊功能分析12</p><p> 3.3 接口設計14</p><p> 3.4.1 DAO層接口設計14</p><p
13、> 3.3.2 Service層接口設計15</p><p> 第4章 系統(tǒng)功能實現(xiàn)16</p><p> 4.1 實現(xiàn)Ibatis持久層16</p><p> 4.2 實現(xiàn)DAO層16</p><p> 4.2.1 實現(xiàn)DAO組件16</p><p> 4.2.2 配置DAO組件22&l
14、t;/p><p> 4.3 實現(xiàn)Service層23</p><p> 4.3.1 實現(xiàn)業(yè)務邏輯組件23</p><p> 4.3.2 部署業(yè)務邏輯組件37</p><p> 4.4 實現(xiàn)系統(tǒng)Web層39</p><p> 4.4.1 Struts2和Spring的整合39</p><
15、;p> 4.5 功能的具體實現(xiàn)40</p><p> 4.5.1登錄與注冊40</p><p> 4.5.2個人信息41</p><p> 4.5.3 修改密碼41</p><p> 4.5.4發(fā)布商品信息42</p><p> 4.5.5我的倉庫42</p><p&g
16、t; 4.5.6購物車43</p><p> 4.5.7查找商品43</p><p> 4.5.8訂單管理43</p><p> 4.5.9商品評價44</p><p> 4.5.9商品評價管理44</p><p> 第5章 系統(tǒng)功能測試46</p><p> 5.1
17、 測試簡述46</p><p> 5.1.1測試目標46</p><p> 5.1.2 測試步驟46</p><p> 5.1.3 相關操作說明46</p><p> 5.1.4 錯誤定義47</p><p> 5.1.5 產品標識47</p><p> 5.1.6 整個
18、測試過程中使用的軟硬件環(huán)境47</p><p> 5.1.7 測試項簡述47</p><p> 5.2 測試結果概述48</p><p> 5.2.1 測試結果總述48</p><p> 5.2.2 性能測試48</p><p> 5.3 可移植性測試48</p><p>
19、<b> 總 結50</b></p><p><b> 致 謝51</b></p><p><b> 參考文獻52</b></p><p><b> 附 錄53</b></p><p><b> 校園網上交易系
20、統(tǒng)</b></p><p> 摘要:網上交易是一個熱點電子商務,是Internet爆炸式發(fā)展的直接產物,是網絡技術應的全新發(fā)展方向。本文面向全體學生建立了校園網上交易系統(tǒng),學生在注冊登錄后,可在交易系統(tǒng)中銷售和購買商品。網站將以物品列表的形式的向所有訪客展示商品信息,因為本網站主要面向校園師生,所以不提供網銀支付平臺,所有訪客均采取貨到付款方式進行交易。本設計具有注冊、查詢信息、發(fā)布信息等一般電子商
21、務的功能,且體現(xiàn)出校園風格,其特點在于應用了JSP技術,使得本系統(tǒng)具有開跨平臺、分離靜態(tài)內容和動態(tài)內容、可重復使用組件的特點,安全性能高,易學易用。</p><p> 關鍵詞:校園;網上交易系統(tǒng);java;</p><p> The Campus Net Trade System</p><p> Abstract:Online trading is a ho
22、tspot in electronic commerce, is Internet the explosive development of the direct product, the new network technology should be the direction of development. In this paper, facing all students established a campus online
23、 trading system, students in the register, in the trading system of the sale and purchase of goods. Web site will be in the form of a list of items to all visitors to the display of goods information, because the main si
24、te for teachers and students </p><p> Key words:campus; Online trading system; java;</p><p><b> 前 言</b></p><p> 隨著Internet 爆炸式的發(fā)展,中國自加入WTO以來,電子商務在國內也迅速的發(fā)展了起來,現(xiàn)在互聯(lián)
25、網上各種電子商務網站更是迅速的增長。還在校園的我也深受其中的影響,開發(fā)一個對在校學生適用的網站,希望能給大家提供方便的服務。</p><p> 作為一個大學生,深有體會,從身上的衣服到大家所用的書籍、文具以至各種生活常用品,用上一段時間就會被淘汰,有的同學干脆扔掉,很是浪費還污染了環(huán)境。也有的同學想到賣掉,苦于難尋買家,將其賣給收費品的。這樣就造成了物不能盡其用。</p><p> 為
26、了解決這種資源的浪費,所以開發(fā)了校園交易系統(tǒng)網站,借助于低交易成本的Internet。為大家提供一個低成本、快速迅捷的信息發(fā)布平臺。新系統(tǒng)開發(fā)過程中嚴格按照系統(tǒng)開發(fā)步驟進行,在系統(tǒng)調研、分析、設計到系統(tǒng)的實施的全過程中,力求其科學性和合理性。</p><p> 然而,同其它購物網一樣,校園交易網也存在很多的問題尚待解決和完善。其中公平合理的買賣方式、買賣者雙方的信用度、敏感信息傳輸的安全性等問題是人們關注的焦點
27、問題。要讓這種先進的交易方式被更多的人認可,還得不斷的在這些方面有所突破,需要相關人士的不斷研究。</p><p> 校園網交易系統(tǒng)系統(tǒng)是指通過Internet實施的價格談判交易活動,即利用互聯(lián)網在網站上公開發(fā)布將要招標的物品或者服務的信息,建立生產者和消費者之間的交流與互動機制,共同確定價格和數量,從而達到均衡的一種市場經濟過程。它通過Internet將過去少數人才能參與的貴族式的物品交換形式,變成每一位網民
28、都可以加入其中的平民化交易方式。校園網交易不僅是網絡時代消費者定價原則的體現(xiàn),更重要的是交易網站營造了一個供需有效集結的市場,成為消費者和生產商各取所需的場所,因此是一種典型的中介型電子商務形式。相對與傳統(tǒng)交易,校園網交易的特點在于每個商家都可以制定一套適合自己的交易規(guī)則,并且通過校園網交易還可以使定價達到更準確的水平,同時能夠參與交易的人的范圍也大大增加了。</p><p> 本課題要求對校園網交易系統(tǒng)加以設
29、計和研究,采用JSP/J2EE技術,客戶端用戶只要可以上網,就可以非常方便快捷的通過瀏覽器訪問系統(tǒng),瀏覽和發(fā)布交易信息。</p><p> 系統(tǒng)需完成的主要功能有:用戶設置功能、發(fā)布信息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能。</p><p> 校園網交易已經成為一種成功的商業(yè)活動,這種網上的交易行為,并在網絡上演變?yōu)橐环N成功的商業(yè)模式,逐步為世人所接受。</
30、p><p> 經過我國改革開放多年以后,隨著與國際社會的接軌,各種資源的商品化已經逐漸成為了我們這個社會的代名詞。在這這情勢下,B/S交易商品資源也已極大的豐富起來,如何解決一類問題,爭取最大利用率的交流這類商品的信息便是一個存在中的問題。本畢業(yè)設計便是解決該問題的。</p><p> 校園交易系統(tǒng)由于基本是通過網站交易系統(tǒng)進行的,所以會經常出現(xiàn)“所見非所得”的情況。交易物品的質量不如網上
31、所描述的那樣,欺詐問題很普遍。這些信用問題主要和網絡的特性有關,網絡是虛擬的,網站也難以阻止用戶以多個用戶名注冊,而且用戶的真實身份有時難以查明,信用制度在中國又很不完善,所以難免會滋生欺詐現(xiàn)象。</p><p> 解決校園交易系統(tǒng)的信用問題,就是要在校園二手交易網平臺的環(huán)境中,解決信息的私密性、完整性、不可抵賴性以及身份確認問題,其解決方案是多種多樣的。本站主要實現(xiàn)用戶的在線交易和購買功能。首先。針對用戶來說
32、,分為出售者和購買者,用戶注冊包含以下內容:名字,密碼,電子郵件,聯(lián)系電話,真實姓名,聯(lián)系地址,郵政編碼,在注冊的時候考慮到各地用戶的速度和數據的合法驗證,采用高效的客戶端數據驗證,以提高用戶訪問效率,及時驗證用戶數據。</p><p> 注冊成功后用戶登陸,在登陸的時候要區(qū)分用戶是以購買者身份還是出售者的身份登陸,要求登陸后能夠識別用戶的身份,并根據相應的用戶做出相應的權限限制和功能實現(xiàn)。用戶以出售者身份登陸
33、轉到商品交易頁面,用戶填寫相關交易商品信息,提交交易。以購買者身份登陸轉到網站首頁,用戶可隨意查看商品,并對商品進行評論,購買等。</p><p> 設計這樣一個系統(tǒng),從根本上解決了傳統(tǒng)的校園交易信息發(fā)布方式的弊端,使得校園各種交易商品信息得到了有效的整合,方便了廣大用戶。且擁有的客戶通常只是大學校園網的用戶,所有系統(tǒng)規(guī)模上來講不會很大,從經濟上來說,由于選擇的開發(fā)工具和服務器幾乎全部為免費的開源軟件,并且由于
34、是開發(fā)成本較低的基于Web的B/S模式,而非成本費用相對較高的C/S模式,所以從經濟上來講是可行的。從技術上來說,由于是基于Web的,可以相對比較容易面對用戶的實際需求而開發(fā)。而在現(xiàn)今,各種網絡應用的開發(fā)已經相當成熟,出現(xiàn)了幾大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)。同時作為本系統(tǒng),也有許多成功的電子商務類網站的經驗可以借鑒,所以從技術的角度來說,也是可行的。從運行上來說,由于客戶端僅僅只是需要一個瀏覽器,通過瀏覽器
35、來登陸系統(tǒng),而服務器端也只需要一臺服務器,服務器要求一個數據庫環(huán)境和一個網絡應用開發(fā)的環(huán)境,實現(xiàn)起來比較容易,所以從運行上來說是可行的。同時這樣一個系統(tǒng),在系統(tǒng)管理員合法管理和用戶的自覺配合下,不會違規(guī)進行任何的不法的活動和交易,發(fā)布具有危害性和不適宜的信息,也不存在任何非法牟利的行為,在法律上</p><p> 自20世紀90年代以來,信息化浪潮席卷全球,給傳統(tǒng)企業(yè)的運作和管理模式帶來巨大的沖擊。越來越多的傳
36、統(tǒng)企業(yè)認為,以網絡化、知識管理、全球化化為主要特征的新經濟已是不可逆轉的趨勢,電子商務化已成為企業(yè)發(fā)展的必由之路面對Internet本身所具有的開放性、全球性、低成本、高效率等特點,傳統(tǒng)商業(yè)暴露的問題也越來越明顯,原有的商業(yè)格局、商務運作模式在Internet面前也顯得無能為力,客觀形勢給傳統(tǒng)商務工作帶來了壓力和動力。機遇和挑戰(zhàn)、條件和可能,挑戰(zhàn)是現(xiàn)實的,機遇是潛在的,所以迫使我們必須重組原有的商業(yè)格局,變革原有的商業(yè)模式來契合Inte
37、rnet的發(fā)展以取得最大的效益。電子商務就是這樣一種事物,電子商務(Electronic Commerce)是指在計算機互聯(lián)網的支持下進行的商務活動。主要包括網上廣告、訂貨、付款、客戶服務和貨物遞交等售前、售中、售后以及市場調查分析、財務核算及生產安排等多項利用Internet開發(fā)的商業(yè)活動,它對人類社會進行著全方位的改造,在企業(yè)競爭、政府部門、公共研究機構、教育以及娛樂等方面改變著人類相互交往的方式,為人們展示了一個全新、璀璨的世界。
38、由于電子商務的出現(xiàn),傳</p><p><b> 設計前的分析</b></p><p><b> 1.1 系統(tǒng)概述</b></p><p> 校園網交易系統(tǒng)系統(tǒng)是指通過Internet實施的價格談判交易活動,即利用互聯(lián)網在網站上公開發(fā)布將要招標的物品或者服務的信息,建立生產者和消費者之間的交流與互動機制,共同確定價格
39、和數量,從而達到均衡的一種市場經濟過程。它通過Internet將過去少數人才能參與的貴族式的物品交換形式,變成每一位網民都可以加入其中的平民化交易方式。校園網交易不僅是網絡時代消費者定價原則的體現(xiàn),更重要的是交易網站營造了一個供需有效集結的市場,成為消費者和生產商各取所需的場所,因此是一種典型的中介型電子商務形式。相對與傳統(tǒng)交易,校園網交易的特點在于每個商家都可以制定一套適合自己的交易規(guī)則,并且通過校園網交易還可以使定價達到更準確的水平
40、,同時能夠參與交易的人的范圍也大大增加了。</p><p> 本課題要求對校園網交易系統(tǒng)加以設計和研究,采用JSP/J2EE技術,客戶端用戶只要可以上網,就可以非常方便快捷的通過瀏覽器訪問系統(tǒng),瀏覽和發(fā)布交易信息。</p><p> 系統(tǒng)需完成的主要功能有:用戶設置功能、發(fā)布信息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能。</p><p><
41、;b> 1.2需求背景</b></p><p> 校園網交易已經成為一種成功的商業(yè)活動,這種網上的交易行為,并在網絡上演變?yōu)橐环N成功的商業(yè)模式,逐步為世人所接受。</p><p> 經過我國改革開放多年以后,隨著與國際社會的接軌,各種資源的商品化已經逐漸成為了我們這個社會的代名詞。在這這情勢下,B/S交易商品資源也已極大的豐富起來,如何解決一類問題,爭取最大利用率的
42、交流這類商品的信息便是一個存在中的問題。本畢業(yè)設計便是解決該問題的。</p><p> 1.3系統(tǒng)開發(fā)目的及意義</p><p> 在當前社會上,許多的各種類型的電子商務類網站紛紛建立,可以很大程度上的解決人們信息資源的閉塞以及地域上的限制。作為大學校園,伴隨著學生的購買能力的提高和每年的升學和畢業(yè),也存在的許多各種類型的商品,由于信息交流的落后,很多只限于于校園公告欄或者請人代為宣傳
43、的方式進行交易。這種方式有很多局限性和偶然性,并不能滿足商品暢通交流的要求。于是一種新的商品信息交流的方式出現(xiàn)了,就是基于Web的校園網交易系統(tǒng)。通過這個系統(tǒng),可以發(fā)現(xiàn)每一個校園網用戶都是系統(tǒng)的主人,大家可以非常方便的發(fā)布自己的信息,瀏覽別人的發(fā)布的信息,還可以對各種商品信息作出橫向比較,作出自己的最佳選擇。由此可見,該系統(tǒng)只是一個交流商品信息的平臺,與一般的電子商務類網站又有本質的區(qū)別。</p><p><
44、;b> 系統(tǒng)概要設計</b></p><p><b> 2.1項目規(guī)劃</b></p><p> 本系統(tǒng)采用輕量級Java EE技術的Struts2+Spring+Ibatis三個框架整合的貧血模型,使用MySQL作為數據庫,tomcat作為服務器,MyEclipse作為IDE工具。</p><p> 本系統(tǒng)分為兩個主
45、要功能模塊,分別為購買者模塊、出售者模塊。</p><p> 2.2系統(tǒng)總體功能結構</p><p> 整個系統(tǒng)的結構如圖2-1所示。</p><p> 視圖層 控制器層 業(yè)務邏輯層 數據訪問 領域對象 數據庫</p><p> ?。↗SP) Struts2.1
46、 對象層 (MySQL)</p><p> 圖2-1 系統(tǒng)結構圖</p><p> 本系統(tǒng)表現(xiàn)層采用傳統(tǒng)的JSP技術,負責收集用戶請求的數據??刂破鲗硬捎肧truts2.1框架,所以所有的JSP頁面不再使用Java腳本,結合Struts2.1的表現(xiàn)層標簽,JSP完成全部的表現(xiàn)層功能——數據收集、數據表示和輸入
47、數據校驗。所有從前臺提交的數據通過控制器轉交給業(yè)務邏輯層處理,業(yè)務邏輯層所有組件、DAO層的所有組件、事務都處在Spring框架的管理下。借助于Spring的依賴注入,各組件以松耦合的方式組合在一起,并且它要求其Service組件和DAO對象都采用面向對象編程的方式,從而降低系統(tǒng)重構的成本,極好地提高系統(tǒng)的可維護性、可修改性。應用事務采用Spring的聲明式事物框架。通過聲明式事務,無須將事務策略以硬編碼的方式與代碼耦合在一起,而是放在
48、配置文件中聲明。DAO層通過操作領域對象來對數據庫的操作,其中領域對象都處于Ibatis sqlsession的管理之下。DAO層借助于Spring提供的SqlSessionFactoryBean即可完成數據庫操作。</p><p> 第3章 系統(tǒng)詳細設計設計</p><p><b> 3.1 數據庫設計</b></p><p> 通過使
49、用Ibatis持久層,可以避免使用傳統(tǒng)的JDBC方式來操作數據庫,通過利用Ibatis提供的O/R Mapping支持,從而允許程序使用面向對象的方式來操作關系數據庫,保證了整個軟件開發(fā)過程以面向對象方式進行,即面向對象分析、面向對象設計、面向對象編程。表設計圖如圖3-1所示。</p><p> 圖3-1 數據庫設計</p><p> 校園交易管理系統(tǒng)系統(tǒng)中包括的數據表 3-1。<
50、;/p><p><b> 表3-1 數據庫表</b></p><p> 系統(tǒng)中涉及到的數據庫中的表詳細設計如下所示:</p><p> (1)商品訂購信息(orderindex)見表3-2。</p><p> 表3-2 商品訂購信息</p><p> (2)商品信息(product)見表3-
51、3。</p><p><b> 表3-3 商品信息</b></p><p> (3)用戶信息表(userinfo )見表 3-4。</p><p><b> 表3-4 用戶信息</b></p><p> (4)訂單詳情表(order_detail_mess)見表 3-5。</p>
52、<p><b> 表3-5 訂單詳情</b></p><p> (4)評價信息表(order_detail_mess)見表 3-6。</p><p><b> 表3-6 評價信息</b></p><p> 3.2 系統(tǒng)主要功能模塊設計</p><p> 3.2.1 系統(tǒng)功能模
53、塊</p><p> 注冊登錄模塊——實現(xiàn)出售者和購買者分別注冊和登錄,以獲得出售者和購買者的詳細信息。注冊信息為用戶名,密碼,郵箱。登錄信息為用戶名,密碼。</p><p> 個人信息——用戶可以修改個人信息,包括姓名,郵箱,性別,年齡和聯(lián)系地址。</p><p> 修改密碼——為了使保護用戶安全,用戶可以修改個人密碼。</p><p&g
54、t; 發(fā)布商品模塊——出售者發(fā)布商品的信息,包括:商品名、商品類型、描述、商品價格、圖片、生產日期、過期日期等。</p><p> 我的倉庫——當發(fā)布信息以后或者點擊我的倉庫可以進入我發(fā)布商品的倉庫。在我的倉庫中可以取消發(fā)布和查看圖片。</p><p> 購物車模塊——當用戶提交訂單以后可以進入購物車查看購買的商品。也可以編輯購物車信息。包括確認收貨和取消交易操作。</p>
55、;<p> 商品搜索模塊——商品分類列表可以模糊查詢所需商品。</p><p> 訂單管理——用戶點擊我的訂單可以查看訂單信息。用戶也可以修改訂單信息。包括立即發(fā)貨,取消交易,等待發(fā)貨操作。</p><p> 購買商品——用戶點擊選擇的商品可以進入商品詳細信息界面,點擊立即購買可以進入訂單詳情輸入界面,點擊提交即訂單生成。</p><p> 評
56、價信息——當用戶購買商品在購物車中確認收貨以后將進入評價界面,可以對剛剛收到的貨物評價。</p><p> 評價管理——出售者可以查看到自己商品的評價信息。</p><p> 3.2.2 交易系統(tǒng)功能模塊圖</p><p> 功能模塊圖見圖3-2。</p><p> 圖3-2 交易系統(tǒng)功能模塊</p><p>
57、 3.2.3詳細功能分析</p><p> 交易記錄模塊下有我的訂單,我的購物車等模塊如圖3-3所示。</p><p> 我的物品模塊下有出售商品,我的倉庫等模塊如圖3-4所示。</p><p> (3)個人設置模塊下有個人信息,修改密碼等模塊如圖3-5所示。</p><p> 3.2.4主要模塊功能分析</p>&l
58、t;p><b> (1)出售者模塊</b></p><p> 出售者登錄成功后可以執(zhí)行交易商品、查看商品交易情況、搜索商品、賬戶修改的操作。如圖3-6所示。</p><p><b> (2)購買者模塊</b></p><p> 購買者登錄成功后可以執(zhí)行搜索商品、購買、賬戶管理、評價、留言的操作。如圖3-7所示
59、。</p><p> (3)交易與購物模塊</p><p> 交易流程是出售者登錄成功后填寫商品交易表單以提交商品信息。也可以查看交易情況。</p><p> 購物流程是購買者登錄成功后搜索需要的商品,填寫購買表單,購買成功會將信息顯示在購物車。如圖3-8所示。</p><p><b> (4)系統(tǒng)E-R圖</b>
60、;</p><p> 該系統(tǒng)數據庫的E-R圖,如圖3-9所示。</p><p><b> 3.3 接口設計</b></p><p> 3.4.1 DAO層接口設計</p><p> 在Ibatis持久層之上,可使用DAO組件再次封裝數據庫操作,這也是Java EE應用的DAO模式。但使用DAO模式時,既體現(xiàn)了業(yè)務
61、邏輯組件封裝DAO組件的門面模式,也可分離業(yè)務邏輯和DAO組件的功能:業(yè)務邏輯組件負責業(yè)務邏輯的變化,而DAO組件負責持久化的變化,這正是橋接模式的應用。</p><p> 采用DAO模式,每個DAO組件包含了數據庫的訪問邏輯;每個DAO組件對一個數據庫表完成基本的CRUD操作。而在DAO接口里則對DAO組件包含的各種CRUD方法提供了聲明,這樣可以避免業(yè)務邏輯組件于特定的DAO組件耦合。每個DAO組件都提供如
62、下幾個通用的方法:</p><p><b> /**</b></p><p> * find user where user login</p><p><b> */</b></p><p> public User findUser(User loginUser);</p>
63、<p><b> /**</b></p><p> * user regist</p><p><b> */</b></p><p> public int userRegist(User user);</p><p><b> /**</b></
64、p><p> * change user message</p><p><b> */</b></p><p> public int updateUserMess(User user);</p><p><b> /**</b></p><p> * change
65、password</p><p><b> */</b></p><p> public int changePass(User user);</p><p> 3.3.2 Service層接口設計</p><p> Service業(yè)務邏輯層接口里定義了許多業(yè)務邏輯方法,這些方法的實現(xiàn)依賴于DAO組件。每個業(yè)務邏
66、輯方法要涉及多個DAO操作,其DAO操作是單個的數據記錄的操作,而業(yè)務邏輯方法的訪問,則需要涉及到多個DAO操作。</p><p> 如圖3-10所示,這是系統(tǒng)組件結構圖。從這個系統(tǒng)組件結構圖中可清晰地看到Service層和DAO層的依賴關系,也可看到控制層與Service層的依賴關系。</p><p> 圖3-10 Service層和DAO層的關系圖</p><p
67、> 第4章 系統(tǒng)功能實現(xiàn)</p><p> 4.1 實現(xiàn)Ibatis持久層</p><p> 本系統(tǒng)對于刪除級聯(lián)操作采用的是當從表還有記錄不準刪除主表對應的記錄的策略。錄入級聯(lián)操作采用的是必須先錄入主表記錄在參照主主表錄入從表記錄的策略。修改級聯(lián)操作采用修改主表會級聯(lián)到從表的策略。</p><p> 在映射1-N中的關系時,都采用1-N的雙向映射且在1
68、端設置inverse=”true”。即1-N的關聯(lián)關系中由N的一端控制關聯(lián)關系。下面是映射Clazz對象的配置文件,其它3個對象的配置文件見附錄。Mybatis-comfig.xml文件的內容如下。</p><p> <?xml version="1.0" encoding="UTF-8" ?></p><p> <!DOCTY
69、PE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"</p><p> "http://mybatis.org/dtd/mybatis-3-config.dtd"></p><p> <configuration></p><p> &
70、lt;typeAliases></p><p> <typeAlias type="com.stone.vo.User" alias="user" /></p><p> <typeAlias type="com.stone.vo.Product" alias="product" /
71、></p><p> <typeAlias type="com.stone.vo.Order" alias="order" /></p><p> <typeAlias type="com.stone.vo.OrderDetailMess" alias="orderDetailMess&quo
72、t; /></p><p> </typeAliases></p><p><b> <mappers></b></p><p> <mapper resource="mapper/user-Mapper.xml"/></p><p> <map
73、per resource="mapper/product-Mapper.xml"/></p><p> <mapper resource="mapper/order-Mapper.xml"/></p><p> </mappers></p><p> </configuration&g
74、t;</p><p> 4.2 實現(xiàn)DAO層</p><p> 4.2.1 實現(xiàn)DAO組件</p><p> 借助于Spring的DAO支持,可以很方便的為DAO組件提供實現(xiàn)類,Spring為各種常用的持久化技術都提供了很好的支持。</p><p> Spring為Hibernate提供的DAO基類是:SqlSessionDaoSup
75、port,該類只需傳入一個sqlSessionFactory應用,即可得到一個SqlSessionFactoryBean實例。</p><p> 本應用還擴展了SqlSessionDaoSupport,提供了Dao層實現(xiàn)。</p><p> UserDaoImpl實現(xiàn):</p><p> package com.stone.dao.impl;</p>
76、;<p> import org.mybatis.spring.support.SqlSessionDaoSupport;</p><p> import com.stone.dao.UserDao;</p><p> import com.stone.vo.User;</p><p><b> /**</b></p
77、><p> * user handle the user login or regist dao</p><p> * @author stone Apr 4, 201210:18:59 PM UserDaoImpl</p><p><b> */</b></p><p> public class UserDaoI
78、mpl extends SqlSessionDaoSupport implements UserDao {</p><p><b> /**</b></p><p> * find user where user login</p><p><b> */</b></p><p> publ
79、ic User findUser(User loginUser) {</p><p> User user = (User) getSqlSession().selectOne("getUser", loginUser);</p><p> return user;</p><p><b> }</b></p&g
80、t;<p><b> /**</b></p><p> * user regist</p><p><b> */</b></p><p> public int userRegist(User user) {</p><p> int i = getSqlSession()
81、.insert("userRegist", user);</p><p><b> return i;</b></p><p><b> }</b></p><p><b> /**</b></p><p><b> * 修改個人信息<
82、;/b></p><p><b> */</b></p><p> public int updateUserMess(User user) {</p><p> return getSqlSession().update("updateUserMess", user);</p><p>
83、<b> }</b></p><p><b> /**</b></p><p><b> * 修改密碼</b></p><p><b> */</b></p><p> public int changePass(User user) {<
84、/p><p> return getSqlSession().update("changePass", user);</p><p><b> }</b></p><p><b> }</b></p><p> ProductDaoImpl實現(xiàn):</p><
85、;p> package com.stone.dao.impl;</p><p> import java.util.List;</p><p> import java.util.Map;</p><p> import org.mybatis.spring.support.SqlSessionDaoSupport;</p><p&
86、gt; import com.stone.dao.ProductDao;</p><p> import com.stone.vo.Product;</p><p><b> /**</b></p><p> * handle product dao</p><p><b> * </b>
87、</p><p> * @author stone</p><p><b> */</b></p><p> public class ProductDaoImpl extends SqlSessionDaoSupport implements ProductDao {</p><p><b> /**
88、</b></p><p> * cell product -- insert cell product</p><p><b> */</b></p><p> public boolean cellProduct(Product product) {</p><p> boolean flag =
89、false;</p><p> int i = getSqlSession().insert("insertProduct", product);</p><p> if (i >= 1) {</p><p> flag = true;</p><p><b> }</b></p&
90、gt;<p> return flag;</p><p><b> }</b></p><p><b> /**</b></p><p> * find all the login user's product</p><p><b> */</b&g
91、t;</p><p> @SuppressWarnings("unchecked")</p><p> public List<Product> findAllProduct(String nickname) {</p><p> List<Product> list = getSqlSession().select
92、List("findAllProduct",</p><p> nickname);</p><p> return list;</p><p><b> }</b></p><p><b> /**</b></p><p> * find pr
93、oduct by type</p><p><b> */</b></p><p> @SuppressWarnings("unchecked")</p><p> public List<Product> findProductByType(Map paramMap) {</p><p
94、> String product_type = (String) paramMap.get("product_type");</p><p> List<Product> product = getSqlSession().selectList("findProductByType",</p><p> product_typ
95、e);</p><p> return product;</p><p><b> }</b></p><p><b> /**</b></p><p> * find product by productId</p><p><b> */</b&
96、gt;</p><p> public Product findProductByProductId(String p_id) {</p><p> Product product = (Product) getSqlSession().selectOne(</p><p> "findProductByProductId", p_id);
97、</p><p> return product;</p><p><b> /**</b></p><p> * 按產品名稱查詢產品信息</p><p><b> */</b></p><p> @SuppressWarnings("unchecked&
98、quot;)</p><p> public List<Product> findProductByProductName(String productName) {</p><p> String product = "%" + productName + "%";</p><p> List<Pro
99、duct> searcher_Product = getSqlSession().selectList(</p><p> "findProductByProductName", product);</p><p> return searcher_Product;</p><p><b> }</b></
100、p><p><b> /**</b></p><p> * delete product</p><p><b> */</b></p><p> @SuppressWarnings("unchecked")</p><p> public int
101、deleteProduct(String p_id) {</p><p> int i = getSqlSession().delete("cancelIssue", p_id);</p><p><b> return i;</b></p><p><b> }</b></p>&
102、lt;p><b> /**</b></p><p> * 從商品表中隨即查出4見商品 Immediately_goods</p><p><b> */</b></p><p> @SuppressWarnings("unchecked")</p><p> pu
103、blic List<Product> findProductImmediately() {</p><p> List<Product> productlist = (List<Product>) getSqlSession().selectList(</p><p> "findProductImmediately");<
104、/p><p> return productlist;</p><p><b> }</b></p><p><b> /**</b></p><p> * 從商品表中隨即查出12見商品 Immediately_goods</p><p><b> */<
105、;/b></p><p> @SuppressWarnings("unchecked")</p><p> public List<Product> findProductImmediately_two() {</p><p> List<Product> productlist = (List<Prod
106、uct>) getSqlSession().selectList(</p><p> "findProductImmediately_two");</p><p> return productlist;</p><p><b> }</b></p><p><b> }<
107、;/b></p><p> OrderDaoImpl實現(xiàn):</p><p> package com.stone.dao.impl;</p><p> import java.util.List;</p><p> import org.mybatis.spring.support.SqlSessionDaoSupport;&l
108、t;/p><p> import com.stone.dao.OrderDao;</p><p> import com.stone.vo.Order;</p><p> import com.stone.vo.OrderDetailMess;</p><p><b> /**</b></p><
109、p> * 管理購物訂單的Dao實現(xiàn)</p><p><b> * </b></p><p> * @author stone Apr 29, 201210:13:16 PM OrderDaoImpl</p><p><b> */</b></p><p> public class
110、OrderDaoImpl extends SqlSessionDaoSupport implements OrderDao {</p><p><b> /**</b></p><p><b> * 購物生成訂單</b></p><p><b> */</b></p><p&
111、gt; public int CreateOrder(Order order) {</p><p> return getSqlSession().insert("CreateOrder", order);</p><p><b> }</b></p><p><b> /**</b></
112、p><p> * 購物生成訂單詳情</p><p><b> */</b></p><p> public int CreateOrderDetailMess(OrderDetailMess orderDetailMess) {</p><p> return getSqlSession().insert("
113、;CreateOrderDetailMess", orderDetailMess);</p><p><b> }</b></p><p><b> /**</b></p><p><b> * 查詢所有訂單</b></p><p><b> */&
114、lt;/b></p><p> @SuppressWarnings("unchecked")</p><p> public List<Order> findAllOrder() {</p><p> return getSqlSession().selectList("findAllOrder");&
115、lt;/p><p><b> }</b></p><p><b> /**</b></p><p> * 查詢所有出售訂單</p><p><b> */</b></p><p> @SuppressWarnings("unchecked
116、")</p><p> public List<Order> findSellOrder(String userid) {</p><p> return getSqlSession().selectList("findSellOrder", userid);</p><p><b> }</b>
117、</p><p><b> /**</b></p><p> * 查詢所有購買訂單</p><p><b> */</b></p><p> @SuppressWarnings("unchecked")</p><p> public List&
118、lt;Order> findBuyOrder(String userid) {</p><p> return getSqlSession().selectList("findBuyOrder", userid);</p><p><b> }</b></p><p><b> }</b>&
119、lt;/p><p> 4.2.2 配置DAO組件</p><p> 對于繼承SqlSessionDaoSupport的DAO實現(xiàn)類,只需要為其注入</p><p> sqlSessionFactory即可,由于所有DAO組件都需要注入sqlSessionFactory引用,因此使用Bean繼承簡化DAO組件的配置。本應用將所有DAO組件配置在單獨的配置文件中,下面
120、是DAO組件的配置文件代碼:</p><p> <?xml version="1.0" encoding="UTF-8"?></p><p> <beans xmlns="http://www.springframework.org/schema/beans"</p><p> xm
121、lns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p><p> xmlns:p="http://www.springframework.org/schema/p"</p><p> xsi:schemaLocation="http://www.springframework.or
122、g/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"></p><p> <!-- spring ioc容器創(chuàng)建MyBatis框架中的SqlSessionFactory --></p><p> <bean id="sqlSession
123、Factory" class="org.mybatis.spring.SqlSessionFactoryBean"></p><p> <property name="configLocation" value="classpath:mybatis-config.xml" /></p><p> &
124、lt;property name="dataSource" ref="myDataSource"></property></p><p><b> </bean></b></p><p> <!-- user --></p><p> <!-- 注入
125、session --></p><p> <bean id="userdao" class="com.stone.dao.impl.UserDaoImpl"></p><p> <property name="sqlSessionFactory" ref="sqlSessionFactory&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計---校園新聞管理系統(tǒng)的設計
- 畢業(yè)設計-校園舊貨交易系統(tǒng)賣方角色模塊設計與開發(fā)
- 畢業(yè)設計 ---高校校園社團信息管理系統(tǒng)
- 校園二手交易網站畢業(yè)設計
- 畢業(yè)設計---web校園二手交易系統(tǒng)的設計與實現(xiàn)
- 校園二手交易網站畢業(yè)設計論文
- 畢業(yè)設計論文-校園二手商品交易系統(tǒng)的設計與實現(xiàn)
- 游戲交易平臺信息管理系統(tǒng)-畢業(yè)設計論文
- 游戲交易平臺信息管理系統(tǒng)-畢業(yè)設計論文
- 游戲交易平臺信息管理系統(tǒng)-畢業(yè)設計論文
- 校園共享單車系統(tǒng)畢業(yè)設計論文
- 校園社團管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計論文.doc
- 畢業(yè)設計--畢業(yè)設計選題管理系統(tǒng)
- 畢業(yè)設計---虛擬股票交易系統(tǒng)
- 網絡游戲交易平臺信息管理系統(tǒng)-畢業(yè)設計
- 畢業(yè)設計論文 畢業(yè)設計管理系統(tǒng)設計
- 畢業(yè)設計--畢業(yè)設計選題管理系統(tǒng)
- 畢業(yè)設計 畢業(yè)設計(論文)管理系統(tǒng)設計
- 校園網絡管理與安全-畢業(yè)設計
- 畢業(yè)設計---校園路燈智能控制系統(tǒng)設計
評論
0/150
提交評論