天天看點

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

具有智能推薦功能的圖書銷售系統

1.緒論

1.1 背景、目的、意義

随着網際網路的不斷發展,電子商務逐漸代替傳統的交易方式。各種類型的電子商務網站層出不窮,但細分之下電子商務網站主要分為 B2B,B2C,C2B,C2C 這四大類,而 C2C 網站更是展現了當今電子商務領域的趨勢與走向。越來越多的傳統行業都進入的了電子商務時代,服裝、餐飲、快速消費品、化妝品等。而傳統出版行業,尤其是傳統的書店形式更是因為電子商務的崛起,受到了莫大的挑戰。書店也必将進行電子商務的轉型。如果每個書店都自行建設電子商務網站,對于一些小型書店,建設及營運成本必然過高,而且還需要營運這個網站的書店進行前期的宣傳,如果這些投入并不能帶來收益上的提高,必然是虧損的。現在普遍有三種電子商務營運方式,一是全托付型,相關企業隻要和專門建設和營運的企業簽訂開發營運協定,并每年支付一定的費用,就能擁有獨立的電子商務網站,這樣做的好處有,有獨立的域名,獨立的管理系統,遇到技術問題有專業人員及時處理,價格較企業自行營運開發較為低廉等,但缺點是顯而易見的,網站的安全性,使用者資訊的保密性等資訊勢必會由第三方獲知;第二種是獨立開發獨立營運,企業組建獨立部門進行電子商務網站的開發與營運,這樣帶來的好處是便于管理與二次開發,但是缺點是價格高昂,除了需要購置專業的伺服器,資料庫軟體等支出外,還要建設和維護伺服器機房,要招募相關技術人員和營運維護人員,開發周期長,與企業原有制度沖突,導緻網上交易流程變長,使用者等待過久等問題;第三種就是通過在第三方電子商務平台上釋出自己的電商系統,第三方平台開發較為完善,操作簡便等優勢。是以大部分中小型企業或賣家選擇在第三方平台上釋出電商網站。而針對個人來說,手中積壓的書籍往往不能得到充分的利用。而一個開放的 C2C 的電子商務平台就能有效有針對性的解決這些問題。

1.2 優勢、意義

對于傳統意義上的書店,網絡電子書店的優勢是一目了然的:

⑴ 資訊量大。與傳統書店相比,電子書店能夠提供海量圖書資訊。

⑵ 書目資訊豐富。目前,大多數電子書店都提供盡可能完整詳細的書目資訊,如書目、作/譯者,出版社、出版日期、書号、頁碼、内容提要、價格等,有的甚至提供圖書的目錄、前言、内容節選、精彩插圖、書評、作者簡介等。

⑶ 檢索、訂購便捷。網上電子書店提供了多種檢索途徑,可以從書名、作者等途徑進行單獨檢索或組合,快捷準确。

⑷ 價格低廉。一般來講,由于電子書店屏棄和簡化了傳統書店運作所需要的服務設施和多重環節,是以在電子書店買書,要比在普通書店便宜。

⑸ 個性化服務。電子書店不隻單純銷售圖書,還充分發揮網絡優勢,提供豐富多彩的個性化服務,滿足讀者特定的需求。

憑借上述獨到的優勢,網上書店一經問世便受到業内人士的青睐和效仿,在世界範圍内如雨後春筍般地湧現。幾經商戰洗禮,事實證明網上書店具有強大的生命力和廣闊的發展前景。在國内,網上書店的發展也是如火如荼,出版社、國有書店、民營書店等各種性質的圖書營銷實體均紛紛涉足這一領域,尋求新的經濟增長點,并以此作為提高競争力、擴大市場佔有率的有力手段。

2.系統相關技術

本章主要是對系統 研發涉及的相關技術進行介簡要地介紹,涉及的技術主要包括 B/S 模式、Maven 項目對象模型(POM)、MySQL 資料庫、Tomcat 伺服器,後端使用 Java 語言與 SpringMVC 架構,前端方面主要涉及技術有 html5,css3 以及 BootStrap 架構,通過 JavaScript,JQuery 以及 AJAX 渲染頁面以及發送異步請求,項目整體通過 GitHub 進行版本控制管理。

2.1 B/S 模式

B/S[1] (Browser/Server)結構即浏覽器和伺服器結構。它是一種以 Web 技術為基礎的新型的 MIS 系統平台模式。把傳統 C/S 模式中的伺服器部分分解為一個資料伺服器與一個或多個應用伺服器 CWeb 伺服器),進而構成一個三層結構的客戶伺服器體系。

第一層客戶機是使用者與整個系統的接口。客戶的應用程式精簡到一個通用的浏覽器軟體。浏覽器将 HTML 代碼轉化成圖文并茂的網頁。網頁還具備一定的互動功能,允許使用者在網頁提供的申請表上輸入資訊送出給背景,并提出處理請求。這個背景就是第二層的 Web 伺服器。第二層 Web 伺服器将啟動相應的程序來響應這一請求,并動态生成一串 HTML 代碼,其中嵌入處理的結果,傳回給客戶機的浏覽器。如果客戶機送出的請求包括資料的存取,Web 伺服器還需與資料庫伺服器協同完成這一處理工作。第三層資料庫伺服器的任務類似于 C/S 模式,負責協調不同的 Web 伺服器發出的 SQL 請求,管理資料庫。這樣就大大簡化了用戶端電腦載荷,減輕了系統維護與更新的成本和工作量,降低了使用者的總體成本(TCO ) 0 以目前的技術看,區域網路建立 B/S 結構的網絡應用,并通過 Intemet/Intranet 模式下資料庫應用,相對易于把握、成本也是較低的。它是一次性到位的并發,能實作不同的人員,從不同的地點,以不同的接入方式(比如 LAN, WAN, Intemet/Intranet 等)通路和操作共同的資料庫;它能有效地保護資料平台和管理通路權限,伺服器資料庫也很安全。

與傳統的 C/S 模式相比,B/S 具有很多的優點。首先,它簡化了用戶端,無需象 C/S 模式那樣在不同的客戶機上安裝不同的客戶應用程式,而隻需安裝通用的浏覽器軟體。這樣不但可以節省客戶機的硬碟空間與記憶體,而且使安裝過程更加簡便、網絡結構更加靈活。其次,它簡化了系統的 發和維護。系統的開發者無須再為不同級别的使用者設計開發不同的客戶應用程式了,隻需把所有的功能都實作在 Web 伺服器上,并就不同的功能為各個組别的使用者設定權限就可以了。各個使用者通過 HTTP 請求在權限範圍内調用 Web 伺服器上不同處理程式,進而完成對資料的查詢或修改。現代企業面臨着日新月異的競争環境,對企業内部運作機制的更新與調整也變得逐漸頻繁。相對于 C/S, B/S 的維護具有更大的靈活性。當形勢變化時,它無須再為每一個現有的客戶應用程式更新,而隻需對 Web 伺服器上的服務處理程式進行修訂。這樣不但可以提高公司的運作效率,還省去了維護時協調工作的不少麻煩。如果一個公司有上千台客戶機,并且分布在不同的地點,那麼便于維護将會顯得更加重要。再次,它使使用者的操作變得更簡單。對于 C/S 模式,客戶應用程式有自己特定的規格,使用者需要接受專門教育訓練。而采用 B/S 模式時,用戶端隻是一個簡單易用的浏覽器軟體。無論是決策層還是操作層的人員都無需教育訓練,就可以直接使用。這使得企業的大部分書面檔案可以被電子檔案取代,進而提高了企業的工作效率,使企業行政手續簡化,節省人力物力。

2.2 Maven

Maven 是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組标準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運作定義在生命周期階段(phase)中插件(plugin)目标(goal)的邏輯。當你使用 Maven 的時候,你用一個明确定義的項目對象模型來描述你的項目,然後 Maven 可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

Maven 有一個生命周期,當你運作 mvn install 的時候被調用。這條指令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命周期。周遊生命周期旅途中的一個影響就是,Maven 運作了許多預設的插件目标,這些目标完成了像編譯和建立一個 JAR 檔案這樣的工作。此外,Maven 能夠很友善的幫你管理項目報告,生成站點,管理 JAR 檔案,等等。

2.3 MySQL

MySQL 是一個關系型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬于 Oracle 公司。MySQL 是一種關聯資料庫管理系統,關聯資料庫将資料儲存在不同的表中,而不是将所有資料放在一個大倉庫内,這樣就增加了速度并提高了靈活性,它的主要功能有以下幾點:

(1)基本的資料庫操作:插入 Insert、删除 Delete、查詢 Select、更新 Update。

(2)快速修複功能。

(3)安全性髙。

(4)對操作者簡單易懂。

(5)增強了校對、字元支援和全球部署。

(6)加強了資料的複制性。

2.4 Tomcat

Tomcat 是 Apache 軟體基金會(Apache Software Foundation)的 Jakarta 項目中的一個核心項目,由 Apache、Sun 和其他一些公司及個人共同開發而成。由于有了 Sun 的參與和支援,最新的 Servlet 和 JSP 規範總是能在 Tomcat 中得到展現,Tomcat 5 支援最新的 Servlet 2.4 和 JSP 2.0 規範。因為 Tomcat 技術先進、性能穩定,而且免費,因而深受 Java 愛好者的喜愛并得到了部分軟體開發商的認可,成為目前比較流行的 Web 應用伺服器。

Tomcat 伺服器是一個免費的開放源代碼的 Web 應用伺服器,屬于輕量級應用伺服器,在中小型系統和并發通路使用者不是很多的場合下被普遍使用,本系統采用 Apache Tomcat 7.x,它在汲取了 Tomcat 6.0.x 優點的基礎上,實作了對于 Servlet 3.0、JSP 2.2 和 EL 2.2 等特性的支援。除此以外的改進清單如下:

(1)Web 應用記憶體溢出偵測和預防

(2)增強了管理程式和伺服器管理程式的安全性

(3)一般 CSRF 保護

(4)支援 Web 應用中的外部内容的直接引用

(5) 重構 (connectors, lifecycle)及很多核心代碼的全面梳理

2.5 Java

Java 是一種跨平台,适合于分布式計算環境的面向對象程式設計語言。具體來說,它具有如下特性:簡單性、面向對象、分布式、解釋型、可靠、安全、平台無關、可移植、高性能、多線程、動态性等。下面我們将介紹 Java 語言的面向對象、平台無關、分布式、多線程、可靠和安全等特性。

(1)面向對象

面向對象其實是現實世界模型的自然延伸。現實世界中任何實體都可以看作是對象。對象之間通過消息互相作用。另外,現實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的執行個體。如果說傳統的過程式程式設計語言是以過程為中心以算法為驅動的話,面向對象的程式設計語言則是以對象為中心以消息為驅動。用公式表示,過程式程式設計語言為:程式=算法 + 資料;面向對象程式設計語言為:程式=對象 + 消息。

所有面向對象程式設計語言都支援三個概念:封裝、多态性和繼承,Java 也不例外。現實世界中的對象均有屬性和行為,映射到計算機程式上,屬性則表示對象的資料,行為表示對象的方法(其作用是處理資料或同外界互動)。所謂封裝,就是用一個自主式架構把對象的資料和方法聯在一起形成一個整體。可以說,對象是支援封裝的手段,是封裝的基本機關。Java 語言的封裝性較強,因為 Java 無全程變量,無主函數,在 Java 中絕大部分成員是對象,隻有簡單的數字類型、字元類型和布爾類型除外。而對于這些類型,Java 也提供了相應的對象類型以便與其他對象互動操作。

多态性就是多種表現形式,具體來說,可以用“一個對外接口,多個内在實作方法”表示。舉一個例子,計算機中的堆棧可以存儲各種格式的資料,包括整型,浮點或字元。不管存儲的是何種資料,堆棧的算法實作是一樣的。針對不同的資料類型,程式設計人員不必手工選擇,隻需使用統一接口名,系統可自動選擇。運算符重載(operatoroverload)一直被認為是一種優秀的多态機制展現,但由于考慮到它會使程式變得難以了解,是以 Java 最後還是把它取消了。

繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,是以,汽車是它們的“父親”,而這些子實體則是汽車的“孩子”。Java 提供給使用者一系列類(class),Java 的類有層次結構,子類可以繼承父類的屬性和方法。與另外一些面向對象程式設計語言不同,Java 隻支援單一繼承。

(2)平台無關性

Java 是平台無關的語言是指用 Java 寫的應用程式不用修改就可在不同的軟硬體平台上運作。平台無關有兩種:源代碼級和目标代碼級。C 和 C++ 具有一定程度的源代碼級平台無關,表明用 C 或 C++ 寫的應用程式不用修改隻需重新編譯就可以在不同平台上運作。

Java 主要靠 Java 虛拟機(JVM)在目标碼級實作平台無關性。JVM 是一種抽象機器,它附着在具體作業系統之上,本身具有一套虛機器指令,并有自己的棧、寄存器組等。但 JVM 通常是在軟體上而不是在硬體上實作。(目前,SUN 系統公司已經設計實作了 Java 晶片,主要使用在網絡計算機 NC 上。

另外,Java 晶片的出現也會使 Java 更容易嵌入到家用電器中。)JVM 是 Java 平台無關的基礎,在 JVM 上,有一個 Java 解釋器用來解釋 Java 編譯器編譯後的程式。Java 程式設計人員在編寫完軟體後,通過 Java 編譯器将 Java 源程式編譯為 JVM 的位元組代碼。任何一台機器隻要配備了 Java 解釋器,就可以運作這個程式,而不管這種位元組碼是在何種平台上生成的。另外,Java 采用的是基于 IEEE 标準的資料類型。通過 JVM 保證資料類型的一緻性,也確定了 Java 的平台無關性。

Java 的平台無關性具有深遠意義。首先,它使得程式設計人員所夢寐以求的事情(開發一次軟體在任意平台上運作)變成事實,這将大大加快和促進軟體産品的開發。其次 Java 的平台無關性正好迎合了“網絡計算機”思想。如果大量常用的應用軟體(如字處理軟體等)都用 Java 重新編寫,并且放在某個 Internet 伺服器上,那麼具有 NC 的使用者将不需要占用大量空間安裝軟體,他們隻需要一個 Java 解釋器,每當需要使用某種應用軟體時,下載下傳該軟體的位元組代碼即可,運作結果也可以發回伺服器。目前,已有數家公司開始使用這種新型的計算模式構築自己的企業資訊系統。

(3)分布式

分布式包括資料分布和操作分布。資料分布是指資料可以分散在網絡的不同主機上,操作分布是指把一個計算分散在不同主機上處理。

Java 支援 WWW 客戶機/伺服器計算模式,是以,它支援這兩種分布性。對于前者,Java 提供了一個叫作 URL 的對象,利用這個對象,你可以打開并通路具有相同 URL 位址上的對象,通路方式與通路本地檔案系統相同。對于後者,Java 的 applet 小程式可以從伺服器下載下傳到用戶端,即部分計算在用戶端進行,提高系統執行效率。

Java 提供了一整套網絡類庫,開發人員可以利用類庫進行網絡程式設計,友善得實作 Java 的分布式特性。

(4)可靠性和安全性

Java 最初設計目的是應用于電子類消費産品,是以要求較高的可靠性。Java 雖然源于 C++,但它消除了許多 C++ 不可靠因素,可以防止許多程式設計錯誤。首先,Java 是強類型的語言,要求顯式的方法聲明,這保證了編譯器可以發現方法調用錯誤,保證程式更加可靠;其次,Java 不支援指針,這杜絕了記憶體的非法通路;第三,Java 的自動單元收集防止了記憶體丢失等動态記憶體配置設定導緻的問題;第四,Java 解釋器運作時實施檢查,可以發現數組和字元串通路的越界,最後,Java 提供了異常處理機制,程式員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務便于恢複。

由于 Java 主要用于網絡應用程式開發,是以對安全性有較高的要求。如果沒有安全保證,使用者從網絡下載下傳程式執行就非常危險。Java 通過自己的安全機制防止了病毒程式的産生和下載下傳程式對本地系統的威脅破壞。當 Java 位元組碼進入解釋器時,首先必須經過位元組碼校驗器的檢查,然後,Java 解釋器将決定程式中類的記憶體布局,随後,類裝載器負責把來自網絡的類裝載到單獨的記憶體區域,避免應用程式之間互相幹擾破壞。最後,用戶端使用者還可以限制從網絡上裝載的類隻能通路某些檔案系統。

上述幾種機制結合起來,使得 Java 成為安全的程式設計語言。

(5)多線程

線程是作業系統的一種新概念,它又被稱作輕量程序,是比傳統程序更小的可并發執行的機關。C 和 C++ 采用單線程體系結構,而 Java 卻提供了多線程支援。

Java 在兩方面支援多線程。一方面,Java 環境本身就是多線程的。若幹個系統線程運作負責必要的無用單元回收,系統維護等系統級操作;另一方面,Java 語言内置多線程控制,可以大大簡化多線程應用程式開發。Java 提供了一個類 Thread,由它負責啟動運作,終止線程,并可檢查線程狀态。Java 的線程還包括一組同步原語。這些原語負責對線程實行并發控制。利用 Java 的多線程程式設計接口,開發人員可以友善得寫出支援多線程的應用程式,提高程式執行效率。必須注意地是,Java 的多線程支援在一定程度上受運作時支援平台的限制。例如,如果作業系統本身不支援多線程,Java 的多線程特性可能就表現不出來。

2.6 SpringMVC

Spring MVC 架構是有一個 MVC 架構,通過實作 Model-View-Controller 模式來很好地将資料、業務與展現進行分離。從這樣一個角度來說,Spring MVC 和 Struts、Struts2 非常類似。Spring MVC 的設計是圍繞 DispatcherServlet 展開的,DispatcherServlet 負責将請求派發到特定的 handler。通過可配置的 handler mappings、view resolution、locale 以及 theme resolution 來處理請求并且轉到對應的視圖。Spring MVC 請求處理的整體流程如下圖:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 2-1 Spring MVC 請求處理流程圖

2.7 Html5,Css3

HTML5 和 CSS3 不僅僅是兩項新的 Web 技術标準,更代表了下一代 HTML 和 CSS 技術。雖然 HTML5 的标準規範還沒有正式釋出,但是未來的發展前景已經可以預見,那就是 HTML5 必将被越來越多的 Web 開發人員所使用,各大主流浏覽器廠家已經積極更新自己的産品,以更好地支援 HTML5。

Html5+css3 相比較以前 HTML 和 CSS 主要有如下優勢。

(1)更多的描述性标簽:HTML5 引入非常多的描述性标簽,例如用于定義頭部(header)、尾部(footer)、導航區域(nav)、側邊欄(aside)等标簽,使開發人員非常友善的建構頁面元素。

(2)良好的多媒體支援:對于先前的以插件的方式播放音頻、視訊帶來的麻煩,HTML5 有了解決方案,audio 标簽和 video 标簽能夠友善的實作應變。

(3)更強大的 Web 應用:HTML5 提供了令人稱奇的功能,某些情況下,你甚至可以完全放棄使用第三方技術。

(4)跨文檔消息通信:Web 浏覽器會組織不同域間的腳本互動或影響,但是對于可信任的腳本或許就是麻煩。HTML5 引入了一套安全且易于實作的應對方案。

(5)Web Sockets:HTML5 提供了對 Web Sockets 的支援。

(6)用戶端存儲:HTML5 的 Web Storage 和 Web SQL Database API,可以在浏覽器中建構 Web 應用的用戶端持久化資料。

(7)更加精美的界面:HTML5+CSS3 組合渲染出來的界面效果有時候是無法想象的精美。

(8)更強大的表單:HTML5 提供了功能更加強大的表單界面控件,使用非常友善。

(9)提升可通路性:内容更加清晰,使使用者的操作更加簡單友善,體驗提升。

(10)先進的選擇器:CSS3 選擇器可以友善的識别出表格的奇偶行、複選框等,代碼标記更少。

(11)視覺效果:精美界面的一部分,陰影、漸變、圓角、旋轉等視覺效果。

(12)HTML5 向後相容

(13)HTML5 廢棄了不少常見的标簽與屬性

2.8 BootStrap

Bootstrap,來自 Twitter,是目前很受歡迎的前端架構。Bootstrap 是基于 HTML、CSS、JavaScript 的,它簡潔靈活,使得 Web 開發更加快捷。[1] 它由 Twitter 的設計師 Mark Otto 和 Jacob Thornton 合作開發,是一個 CSS/HTML 架構。Bootstrap 提供了優雅的 HTML 和 CSS 規範,它即是由動态 CSS 語言 Less 寫成。Bootstrap 一經推出後頗受歡迎,一直是 GitHub 上的熱門開源項目,包括 NASA 的 MSNBC(微軟全國廣播公司)的 Breaking News 都使用了該項目。[2] 國内一些移動開發者較為熟悉的架構,如 WeX5 前端開源架構等,也是基于 Bootstrap 源碼進行性能優化而來。[3]

2.9 JavaScript jQuery AJAX

2.9.1 JavaScript

JavaScript 語言的前身叫作 Livescript。自從 Sun 公司推出著名的 Java 語言之後,Netscape 公司引進了 Sun 公司有關 Java 的程式概念,将自己原有的 Livescript 重新進行設計,并改名為 JavaScript。

JavaScript 是一種基于對象和事件驅動并具有安全性能的腳本語言,有了 JavaScript,可使網頁變得生動。使用它的目的是與 HTML 超文本辨別語言、Java 腳本語言一起實作在一個網頁中連結多個對象,與網絡客戶互動作用,進而可以開發用戶端的應用程式。它是通過嵌入或調入在标準的 HTML 語言中實作的。

JavaScript 具有很多優點:

  (1).簡單性  JavaScript 是一種腳本編寫語言,它采用小程式段的方式實作程式設計,像其它腳本語言一樣,JavaScript 同樣已是一種解釋性語言,它提供了一個簡易的開發過程。它的基本結構形式與 C、C++、VB、Delphi 十分類似。但它不像這些語言一樣,需要先編譯,而是在程式運作過程中被逐行地解釋。它與 HTML 辨別結合在一起,進而友善使用者的使用操作。

(2).動态性  JavaScript 是動态的,它可以直接對使用者或客戶輸入做出響應,無須經過 Web 服務程式。它對使用者的反映響應,是采用以事件驅動的方式進行的。所謂事件驅動,就是指在首頁中執行了某種操作所産生的動作,就稱為“事件”。比如按下滑鼠、移動視窗、選擇菜單等都可以視為事件。當事件發生後,可能會引起相應的事件響應。

(3).跨平台性  JavaScript 是依賴于浏覽器本身,與操作環境無關,隻要能運作浏覽器的計算機,并支援 JavaScript 的浏覽器就可以正确執行。

(4).節省 CGI 的互動時間  随着 WWW 的迅速發展有許 WWW 伺服器提供的服務要與浏覽者進行交流,确浏覽的身份、需服務的内等等,這項工作通常由 CGI/PERL 編寫相應的接口程式與使用者進行互動來完成。很顯然,通過網絡與使用者的互動過程一方面增大了網絡的通信量,另一方面影響了伺服器的服務性能。伺服器為一個使用者運作一個 CGI 時,需要一個程序為它服務,它要占用伺服器的資源(如 CPU 服務、記憶體耗費等),如果使用者填表出現錯誤,互動服務占用的時間就會相應增加。被通路的熱點主機與使用者互動越多,伺服器的性能影響就越大。

2.9.2 jQuery

jQuery 是繼 prototype 之後又一個優秀的 JavaScript 庫。它是輕量級的 js 庫 ,它相容 CSS3,還相容各種浏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0 及後續版本将不再支援 IE6/7/8 浏覽器。jQuery 使使用者能更友善地處理 HTML(标準通用标記語言下的一個應用)、events、實作動畫效果,并且友善地為網站提供 AJAX 互動。jQuery 還有一個比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery 能夠使使用者的 HTML 頁面保持代碼和 HTML 内容分離,也就是說,不用再在 HTML 裡面插入一堆 js 來調用指令了,隻需要定義 id 即可。

jQuery 是一個相容多浏覽器的 JavaScript 庫,核心理念是 write less,do more(寫得更少,做得更多)。jQuery 在 2006 年 1 月由美國人 John Resig 在紐約的 barcamp 釋出,吸引了來自世界各地的衆多 JavaScript 高手加入,由 Dave Methvin 率領團隊進行開發。如今,jQuery 已經成為最流行的 JavaScript 庫,在世界前 10000 個通路最多的網站中,有超過 55% 在使用 jQuery。

jQuery 是免費、開源的,使用 MIT 許可協定。jQuery 的文法設計可以使開發更加便捷,例如操作文檔對象、選擇 DOM 元素、制作動畫效果、事件處理、使用 AJAX 以及其他功能。除此以外,jQuery 提供 API 讓開發者編寫插件。其子產品化的使用方式使開發者可以很輕松的開發出功能強大的靜态或動态網頁。

2.9.3 AJAX

AJAX 的全稱是 AsynchronousJavaScript+XML ,AJAX 不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。AJAX 結合了 Java 技術、XML 以及 JavaScript 等程式設計技術,可以讓開發人員建構基于 Java 技術的 Web 應用,并打破了使用頁面重載的慣例。 AJAX 是使用用戶端腳本與 Web 伺服器交換資料的 Web 應用開發方法。這樣,Web 頁面不用打斷互動流程進行重新加載,就可以動态地更新。使用 AJAX,使用者可以建立接近本地桌面應用的直接、高可用、更豐富、更動态的 Web 使用者界面。

2.10 GitHub

Git 是一個分布式的版本控制系統,最初由 Linus Torvalds 編寫,用作 Linux 核心代碼的管理。在推出後,Git 在其它項目中也取得了很大成功,尤其是在 Ruby 社群中。目前,包括 Rubinius、Merb 和 Bitcoin 在内的很多知名項目都使用了 Git。Git 同樣可以被諸如 Capistrano 和 Vlad the Deployer 這樣的部署工具所使用。

利用 GitHub,你可以将項目存檔,與其他人分享交流,并讓其他開發者幫助你一起完成這個項目。優點在于,他支援多人共同完成一個項目,是以你們可以在同一頁面對話交流。

Git 也有很多好處。他被視為一個預先維護過程,你可以按自己的需要恢複、送出出現問題,或者您需要恢複任何形式的代碼,可以避免很多麻煩。Git 最好的特性之一是能夠跟蹤錯誤,這讓使用 GitHub 變得更加簡單。Bugs 可以公開,你可以通過 GitHub 評論,送出錯誤。同時使用 GitHub 提高了個人的容錯率與友善,随時随地可以通過網絡同步到本地生産代碼。

3.需求分析

3.1 系統需求的描述

随着近幾年來網際網路科技的發展,各行各業越來越注重計算機的應用,同時也包括了商城這塊,由于網上電子商城的出現和普及,很大程度的友善了顧客,同時也為商家節省了店鋪的租賃費等一系列繁瑣的問題。而網上書店的優越性更是顯而易見,除了和普通網店的相似性之外還具備智能推薦功能和免費試讀功能,以下是本系統的大概描述:

從商家自身角度:通過登入之後,以簡潔明了的操作界面為商家提供服務,商家可以對自己書店的圖書進行添加,修改,删除等操作,進而實作對商品的管理,還可以對銷售情況進行檢視和統計以及對訂單的處理。

從顧客角度:顧客可以随意的浏覽該書城的任何商品,登陸之後可以将自己滿意的圖書加入購物車進行購買以及和商家進行互動。

3.2 可行性分析

可行性分析(Feasibility analysis),是建立在對系統調查分析的基礎上,對所開發的軟體的系統分析和系統設計進行髙度抽象并進行客觀分析的過程。為了避免投資開發的失誤,盡可能減少人力物力上的損失,提高系統開發的成功率,針對系統的 發是否具備必要性和可能性,對系統的 發從技術、經濟、操作等方面進行研究和分析。為了達到用最小的代價在盡可能短的時間内确定問題是否能夠解決這個目的,必須分析幾種主要的解決方案,進而綜合權衡原定的系統目标和規模是否符合實際,以及系統完成後所能帶來的最大社會和經濟效益。是以對所要開發的系統進行可行性分析和研究是系統設計和開發前的不可或缺的重要過程。

下面結合智能推薦功能的圖書銷售系統的工作實際,從技術、經濟和操作方面對本文所要開發的系統進行可行性分析。

3.2.1 技術可行性

技術可行性是根據系統目标來衡量所需的技術是否具備,一般可從硬體,軟體的性能要求,環境條件,技術人員水準和數量等方面去考慮和分析。該系統是一個售書系統,是基礎的管理資訊系統,在網際網路金融行業發達的今天,大量學者對網絡銷售系統進行了深入和廣泛的研究,其開發技術已比較成熟,硬體、軟體的性能要求、環境條件等各項條件良好,利用現有的技術條件完全可以實作該系統的功能目标。本文在設計宿舍管理系統之前進行的技術可行性分析,主要考慮了硬體、軟體是否能滿足系統的開發,能否保證系統順利地完成。采用得到廣大開發人員認可的 B/S 模式進行系統的開發,利用面向對象方法結合資料庫技術,是以能滿足本系統系統的設計與實作系統的開發技術。

需要具備的硬體資源:PC 機一台;軟體資源:Windows 系統、MySQL 資料庫、Tomcat 伺服器、eclipse/spring tools suit 等開發環境。

3.2.2 經濟可行性

經濟可行性主要是對項目的經濟效益進行評價,即估算系統的開發費用和今後的運作,維護費用,估計系統将獲得的效益,并将費用與效益進行比較,看是否有利。網上售書系統是針對賣家和買家購書友善而開發的應用軟體,屬于一個小型軟體系統,其開發,運作和維護的費用較低。使用本系統的賣家和買家隻需要具有計算機、安裝有作業系統軟體、利用網絡等便可以使用本系統,并且該系統本身也為使用者提供了系統維護功能,減少了系統維護的費用。是以本系統在經濟上是可行的。

3.2.3 操作可行性

操作可行性[4]是對本系統運作後給現行系統帶來的影響和後果進行估計和評價,本系統是基于 B/S 模式進行開發的,在 Windows 作業系統環境下運作,系統界面友好,操作簡單易懂,實用性強。使用者對象是顧客和賣家管理從業人員,隻需要仔細閱讀操作方法和簡單的計算機操作知識,就可以自由使用該系統。

3.3 需求分析

3.3.1 識别參與者和用例

通過對系統的分析,可以确定系統有三個參與者,分别是一般使用者、商家。各個參與者的描述如下:

(1)普通使用者(買家):可以浏覽圖書和下訂單,以及個人的基本資訊管理

(2)商家:可以添加商品、删除商品、浏覽商品,檢視購買情況統計,以及操作訂單

3.3.2 用例圖

(1)普通使用者(買家)的用例圖

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 3-1 普通使用者(買家)用例圖

(2)買家用例圖說明如下:

● 注冊用例 初次登陸須進行賬戶注冊,并送出個人資訊。

● 登陸用例 完成買家的登陸功能,驗證身份以保證系統的安全。

● 浏覽圖書用例 以最直覺的形式顧客可以檢視所有的圖書

● 浏覽圖書詳情用例 可以為顧客提供詳細的圖書資訊

● 檢視書評用例 為使用者提供參考性意見

● 免費試讀用例 讓使用者進行試讀

● 檢視購物車用例 為顧客提供已篩選商品

● 新增訂單用例 将本次購書資訊生成訂單

● 删除訂單用例 删除一次購書訂單

● 訂單支付用例 為一次購物付款

● 訂單評價用例 對本次購物進行評價

● 收貨位址管理用例 管理買家的收獲位址

● 密碼修改用例 修改登入密碼,確定安全性

● 線上交流用例 線上與商家進行溝通,讓買家了解更多的關于圖書資訊

(3)賣家的用例圖

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 3-2 賣家用例圖

(4)賣家用例描述:

● 登陸用例 完成賣家的登陸功能,驗證身份以保證系統的安全。

● 密碼修改用例 為商家提供密碼修改功能,確定安全性

● 檢視訂單用例 對不需要的商品資訊删除。

● 删除訂單用例 查詢要尋找的商品資訊。

● 添加圖書資訊用例 添加新上架圖書資訊

● 修改圖書資訊 對上架圖書資訊進行修改

● 修改庫存用例 修改圖書的庫存量

● 試讀章節添加用例 為圖書添加試讀内容

● 試讀章節修改用例 為圖書修改試讀内容

● 試讀章節删除用例 删除圖書試讀内容

● 日銷售額分時統計用例 銷售額的分時顯示

● 按類型統計銷量用例 按照分類進行統計銷量

● 圖書銷量排行用例 根據圖書的銷量進行排序

● 線上交流用例 友善和顧客進行溝通

3.2.2 用例描述

登入用例的描述:

用例名稱 登入
辨別符 UC001
用例描述 完成顧客、管理者和超級管理者的登陸功能,驗證身份以保證系統的安全
參與者 顧客、管理者和超級管理者
前置條件
後置條件 登入到系統
基本操作流程 1.選擇登入入口 2.系統提示輸入使用者名和密碼 3.使用者輸入使用者名和密碼 4.系統驗證使用者名密碼,若正确,使用者登入到系統中
可選操作流程 如果使用者輸入無效的使用者名和密碼,系統顯示無該使用者并提示注冊,如果使用者輸入的密碼不正确,系統密碼錯誤資訊,并傳回重新提示使用者輸入使用者名和密碼以及是否需要找回密碼

注冊用例的描述:

用例名稱 注冊
辨別符 UC002
用例描述 初次購物須進行賬戶注冊,并送出個人資訊。
參與者 顧客
前置條件
後置條件 使用者注冊成功
基本操作流程 1.點選注冊按鈕 2.選擇注冊入口 3.使用者輸入有效的使用者名、密碼、确認密碼 4.送出,系統檢驗輸入資訊是否合法 5.使用者輸入注冊資訊 6.系統檢驗輸入資訊是否合法,若合法,将該使用者注冊并提示注冊成功
可選操作流程 1.如果使用者名重複或不合法,提示重新輸入使用者名 2.如果密碼和确認密碼不同,提示兩次輸入的密碼不相同,并傳回提示重新輸入密碼 3.如果使用者名輸入不合法,提示使用者名輸入不合法,并傳回重新輸入

浏覽用例的描述:

用例名稱 浏覽
辨別符 UC003
用例描述 顧客
參與者 顧客
前置條件
後置條件
基本操作流程 1.直接通過位址來浏覽商品資訊

檢視商品詳情用例的描述:

用例名稱 檢視商品詳情
辨別符 UC004
用例描述 反應給顧客詳細的商品資訊
參與者 顧客
前置條件 進入浏覽界面
後置條件
基本操作流程 在浏覽界面通過點選商品即可檢視商品詳細資訊

檢視購物車用例的描述:

用例名稱 檢視購物車
辨別符 UC005
用例描述 顧客檢視以加入購物車的商品
參與者 顧客
前置條件 顧客登陸之後
後置條件
基本操作流程 1.顧客登陸之後 2.點選檢視購物車 3.進入購物車

檢視書評用例的描述:

用例名稱 檢視書評
辨別符 UC006
用例描述 顧客檢視其他買家對書的評價
參與者 顧客
前置條件
後置條件
基本操作流程 顧客選擇某商品檢視詳情 檢視書評

檢視免費試讀用例的描述:

用例名稱 檢視書評
辨別符 UC007
用例描述 提前免費閱讀書籍部分章節
參與者 顧客
前置條件
後置條件
基本操作流程 1.顧客選擇某商品檢視詳情 2.免費試讀

檢視免費試讀用例的描述:

用例名稱 檢視書評
辨別符 UC007
用例描述 提前免費閱讀書籍部分章節
參與者 顧客
前置條件
後置條件
基本操作流程 1.顧客選擇某商品檢視詳情 2.免費試讀

檢視新增訂單用例的描述:

用例名稱 新增訂單
辨別符 UC007
用例描述 生成本次購物的訂單
參與者 顧客
前置條件 成功登陸并且選擇商品,選擇收貨位址
後置條件 成功生成訂單為待支付狀态
基本操作流程 選擇具體商品并送出訂單填寫訂單資訊送出訂單

檢視删除訂單用例的描述:

用例名稱 删除訂單
辨別符 UC008
用例描述 删除某次購物的訂單
參與者 顧客
前置條件 成功登陸後檢視我的訂單
後置條件 成功删除訂單
基本操作流程 1.選擇具體訂單進行删除

檢視訂單支付用例的描述:

用例名稱 訂單支付
辨別符 UC009
用例描述 對某訂單進行支付
參與者 顧客
前置條件 成功生成訂單
後置條件 成功支付訂單
基本操作流程

檢視訂單評價用例的描述:

用例名稱 訂單評價
辨別符 UC010
用例描述 對已經完成訂單進行評價
參與者 顧客
前置條件 必須确認收貨之後
後置條件 成功對本次交易評價
基本操作流程 确認收貨評價訂單

管理收貨位址用例的描述:

用例名稱 訂單評價
辨別符 UC011
用例描述 對收貨位址進行管理
參與者 顧客
前置條件 成功登陸之後
後置條件 成功管理收貨位址
基本操作流程

密碼修改用例的描述:

用例名稱 密碼修改
辨別符 UC011
用例描述 修改登入密碼,確定系統的安全性
參與者 買家,商家
前置條件 成功登陸并且驗證舊登入密碼
後置條件 成功修改登入密碼
基本操作流程 成功登陸之後驗證舊登入密碼确認新密碼

線上交流用例的描述:

用例名稱 線上交流
辨別符 UC012
用例描述 線上進行溝通,讓買家了解更多的關于圖書資訊
參與者 買家,商家
前置條件 雙方都成功登陸
後置條件 實時溝通
基本操作流程

4.系統設計

4.1 功能子產品設計

4.1.1 系統的架構設計模式選擇

系統的架構反映了系統的整個功能邏輯結構,主要有 C/S (Client/Server,客戶機/浏覽器)和 B/S (Brower/Server,浏覽器/伺服器)及兩者混合 3 種模式。其中 B/S 模式是一種把 Web 技術和資料庫技術結合起來的新技術,實作了開發環境和應用環境的分離。基于 B/S 模式設計的系統具有如下優點:

(1)系統需要處理的資料集中存放在系統的資料庫伺服器,用戶端不需要儲存任何業務資料和資料庫連接配接資訊,減輕了用戶端的負荷。

(2)它可以實時看到目前發生的所有業務,資料實時性更強。

(3)由于其資料是集中存放的,易于進行資料跟蹤。

(4)伺服器更新則全部應用程式更新。

是以,考慮到實際工作情況以及使用者購物的友善、快捷的優勢,本文設計的系統釆用了 B/S 模式。

4.1.2 系統功能子產品及說明

(1)使用者登入子產品

登入子產品主要包括賣家和買家兩種角色,賣家管理者通過登入系統之後管理書籍,訂單等等,買家通過登入之後成功購買書籍,下訂單。

(2)訂單處理子產品

訂單處理子產品也分為買家和賣家兩個角色,買家主要生成訂單,賣家則是處理買家生成的訂單,然後買家在交易成功之後可以對訂單進行評價,是以完成了完整的購物流程。

(3)線上交流子產品

買家在購物時可以向賣家咨詢關于書籍以及訂單等方面的任何問題,友善買家的同時促進買賣之間的交流,使得雙方達成共赢。

(4)圖書相關子產品

賣家通過圖書添加編輯等功能向系統錄入圖書資訊,之後買家就可以通過系統浏覽并且購買書籍。

(5)銷量統計子產品

此子產品主要是針對賣家統計圖書的銷量資訊,入賬金額統計,使得交易數字化,進而更好地管理圖書,盡可能的為買家提供服務的同時自我更新。

(6)公告/優惠資訊子產品

賣家:主要通過系統釋出兩種資訊,第一是優惠資訊顯示給使用者看,進而達到促進銷量的目的,第二是釋出系統消息,為其他系統管理者釋出公告等等。

買家:主要通過系統檢視優惠資訊,第一時間享受優惠或者折扣使得購物更加實惠趣味化

(7)購物車子產品

購物車主要是買家在下單時可以同時購買不同種類的書,省去了每次填寫訂單的步驟,為買家提供友善。

(8)智能推薦子產品

本子產品為此系統與其他普通購物網站不同的子產品,賣家可以通過選擇推薦方式來為買家推薦圖書,不僅友善買家省去了盲目選擇書籍,同時也促進了賣家的銷量。

4.1.3 系統功能子產品結構

根據系統的設計目标及功能性需求分析,具有智能推薦功能的圖書銷售系統的總體子產品結構圖如圖 4-1 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-1

4. 2 資料庫設計

4.2.1 資料庫設計方案

結構化的資料庫[5]是一種對資料進行有效管理的手段,同時結構化的資料庫也是産生正确資料的一個重要保證。資料是系統運作的核心,系統資料庫是整個系統的基礎和靈魂,資料庫存儲的資料是使用者使用系統的基本資料,系統的任何操作均圍繞資料進行,是以一個好的資料庫設計方案可以有效地降低資料的備援度,實作資料共享,避免資源浪費,同時一個合理的資料組織方式可以使得系統的邏輯更容易了解與實作,減少系統開發的難度。相反,如果資料庫設計不恰當有可能造成資料庫極度膨脹,嚴重時會影響系統中的軟體的運作效率和穩定性,甚至可能造成程式的癱 。是以資料庫在設計的時候要充分考慮系統的資料需求,理清資料之間的邏輯關系,充分考慮資料之間的互相影響,并且資料庫中表的各種關系和完整性限制條件要能夠真實地反映出現實資料之間的關系。

4. 2. 2 E-R 模型設計

E-R(Entity-Relation,實體-聯系)資料模型[25]是一種描述現實資訊世界中資料的靜态特性的重要方法。E-R 資料模型就是利用實體、聯系和屬性這三種成分來描述反映一個客觀資訊世界内容的資料模型。它是從現實資訊世界到資料庫系統中資料邏輯組織結構設計之間的一個中間階段。本系統總共有以下幾個實體的 E-R 圖:

(1)顧客(買家)實體

主要記錄買家個人登入資訊如圖 4-2 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-2

(2)管理者(賣家)實體

主要記錄管理者登入資訊,權限資訊以及是否正常使用狀态,如圖 4-3 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-3

(3)圖書實體

主要存儲詳細的圖書資訊如圖 4-4 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-4

(4)訂單實體

訂單實體主要存儲記錄訂單的相關資訊,比如時間狀态等等 如圖 4-5 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-5

(5)訂單詳情實體

該實體主要記錄相應訂單的詳細商品資訊,結合有圖書實體和訂單實體内容如圖 4-6 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-6

(6)公告實體

該資料表主要記錄儲存優惠資訊和系統公告,通過表中字段進行分類,如圖 4-7 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-7

(7)圖書大類實體

存儲記錄圖書所屬大類資訊 如圖 4-8 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-8

(8)圖示細類實體

為了便于管理,記錄相應大類下的圖書小分類資訊 如圖 4-9 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-9

(9)圖書評價實體

記錄圖書等級評價以及評價内容,便于賣家統計買家需求以及為其他買家提供參考 如圖 4-10 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-10

(10)顧客興趣記錄實體

簡單記錄使用者注冊時候的問卷調查資訊 如圖 4-11 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-11

(11)免費試讀實體

存放圖書免費試讀資訊,友善買家了解圖書資訊 如圖 4-12 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-12

(12)搜尋記錄實體

存放使用者搜尋記錄,更加準确的為買家推薦圖書 如圖 4-13 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-13

(13)購物車實體

臨時存放買家想購買的圖書資訊,友善買家(省去買多種書籍需要多次填寫訂單資訊)如圖 4-14 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-14

(14)推薦方式實體

存放不同類型的買家的推薦方式 如圖 4-15 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-15

4.2.3 資料庫的邏輯設計

根據以上設計的系統實體的 E-R 圖,将資料庫的概念結構模型轉化為以下邏輯結構模型,即設計出具體的資料庫表來存放資料。分别描述如下:

(1)買家表(customer) 如圖 4-16 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-16

(2)訂單表(allorder) 如圖 4-17 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-17

(3)訂單評價表(assess) 如圖 4-18 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-18

(4)圖書表(book) 如圖 4-19 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-19

(5)買家興趣表(customer_interesting) 如圖 4-20 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-20

(6)賣家表(manager) 如圖 4-21 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-21

(7)公告表(customer) 如圖 4-22 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-22

(8)訂單詳情表(order_detial) 如圖 4-23 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-23

(9)免費試讀表(read_free) 如圖 4-24 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-24

(10)買家搜尋記錄表(searchinfo) 如圖 4-25 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-25

(11)購物車表(shopcar) 如圖 4-26 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-26

(12)圖書大類表(type) 如圖 4-27 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-27

(13)圖書細類表(subtype) 如圖 4-28 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-28

(14)隻能推薦表(suggest) 如圖 4-29 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 4-29

4. 3 系統目錄設計

根據以上所有的功能需求分析,結合開發實際情況,為了便于管理,維護及系統的整體規範性,對系統目錄進行如下設計,具體如圖 4-30 所示。

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
圖 4-30 
           

5.系統實作

5.1 賣家(管理者)子產品

5.1.1 登入子產品

作為背景管理子產品,為了保證系統的安全性,登入是必不可少的一部分,并且由于是管理者子產品,是以賬号都是超級管理者通過系統添加的,不提供注冊接口,隻有符合條件的賬号才可以登入系統并完成相應的系統操作,登入界面如下(圖 5-1):

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-1

登入子產品的主要邏輯代碼(controller)如下:

* 管理者登入
	 * @param request
	 * @param model
	 * @param manager
	 * @param session
	 * @return
	 * @throws ParseException
	 */
	@RequestMapping("/turnIndex")  
	 public String toIndex(HttpServletRequest request,Model model,Manager manager,HttpSession session) throws ParseException{  
		int error=0;
		Map<String, String> condition= new HashMap<String, String>();
		condition.put("loginName",manager.getLoginname());
		condition.put("password",manager.getPassword());
		List<Manager> managers= managerService.getManager(condition);
		if(managers.size()!=1){
        	 error=1;
        	 model.addAttribute("error", error);
        	return "login"; 
        }
		//添加登入者session資訊
		 session.setAttribute("managerId", managers.get(0).getId());
		 session.setAttribute("managerLoginname", managers.get(0).getLoginname());
		 session.setAttribute("managerPassword", managers.get(0).getPassword());
		 session.setAttribute("managerName", managers.get(0).getName());
		 session.setAttribute("managerRole", managers.get(0).getRole());
        return "redirect:/main/index"; 
}  
           

5.1.2 管理者首頁子產品

首頁是管理者登入之後的最直接能看到的部分,是以首頁的設計應該包含一些整體的最重要的内容,進而達到以最簡單最直覺的方式向管理者呈現最重要的資訊。首頁設計圖如圖 5-2:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-2

登入子產品的主要邏輯代碼(controller)如下:

@RequestMapping("/index")
	public String turnIndex(HttpServletRequest request, Model model) {
		Date date = new Date();
		DateFormat format = new SimpleDateFormat("yyyy-MM");
		String dateParam = format.format(date);
		// 查詢當月交易
		List<Order> list = new ArrayList<Order>();
		List<MonthMoney> moneyList = new ArrayList<MonthMoney>();
		list = orderService.findByMonth(dateParam + "%");
		double allMoney = 0;
		for (int i = 1; i <= 31; i++) {
			MonthMoney monthMoney = new MonthMoney();
			double daycount = 0;
			for (int m = 0; m < list.size(); m++) {
				String day = list.get(m).getOrderdate().substring(8, 10);
				if (i == Integer.parseInt(day)) {
					daycount += list.get(m).getTotalmoney();
				}
			}
			monthMoney.setDay(i);
			monthMoney.setMoney(daycount);
			moneyList.add(monthMoney);
			allMoney += daycount;
		}
		model.addAttribute("moneyList", moneyList);
		model.addAttribute("allOrder", list.size());
		model.addAttribute("allMoney", allMoney);
		// 查詢本月共銷售圖書量
		int allBook = 0;
		for (Order orderlist : list) {
			List<OrderDetial> detialList = new ArrayList<OrderDetial>();
			Map<String, Object> condition = new HashMap();
			condition.put("orderid", orderlist.getOrderid());
			detialList = orderDetialService.getOrderDetialNoPage(condition);
			for (OrderDetial orderDetial : detialList) {
				allBook += orderDetial.getQuantity();
			}
		}
		model.addAttribute("allBook", allBook);
		// 查詢首頁顯示公告
		int number = 3;
		List<Notice> allNotice = noticeService.SellectAll();
		List<Notice> managerNotice = new ArrayList();
		List<Notice> activeNotice = new ArrayList();
		for (Notice notice : allNotice) {
			if (notice.getType() == 0) {
				managerNotice.add(notice);
			} else {
				activeNotice.add(notice);
			}
		}
		if (managerNotice.size() > number) {
     for(int i=managerNotice.size();i>number;i=managerNotice.size()){
    	 managerNotice.remove(3);
     }
		}
		if (activeNotice.size() > number) {
			for(int i=activeNotice.size();i>number;i=activeNotice.size()){
				activeNotice.remove(3);
		     }
		}
		model.addAttribute("managerNotice",managerNotice );
		model.addAttribute("activeNotice",activeNotice );
		return "/main/index";
	}
           

5.1.3 訂單子產品

訂單作為買家和賣家直接唯一的也是最重要的一份協定,不但是一份彙總資訊,也是買賣幾件的橋梁。具體設計如下:

(1)訂單總體管理界面如圖 5-3:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-3

(2)訂單詳情界面設計如圖 5-4:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-4

(3)訂單操作資訊界面設計如圖 5-5:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-5

(4)訂單查詢子產品界面書籍如圖 5-6 所示:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-6

5.1.4 圖書分類管理子產品

為了便于圖書的管理與使用者的檢索以及根據使用者喜歡類型進行推薦,圖書分類是圖書特别重要的一部分,他不僅使得圖書規範化,直覺化同時也可以減少管理者的工作量,具體界面設計如下:

(1)圖書分類查詢與顯示如圖 5-7 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-7

(2)圖書大類添加界面如圖 5-8 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-8

(3)圖書細類添加界面如圖 5-9 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-9

(4)圖書類别編輯界面如圖 5-10 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-10

(5)圖書類别具體操作如圖 5-11 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-11

5.1.5 圖書資訊管理子產品

圖書作為本系統的主要虛拟實體,所有的操作都建立在此基礎之上,是以該子產品的設計尤為重要,具體的界面如下所示:

(1)圖書查詢與清單展示 如圖 5-12 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-12

(2)圖書上架界面 如圖 5-13 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-13

(3)圖書詳情界面 如圖 5–14 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-14

(4)圖書庫存修改與圖書操作 如圖 5-15,圖 5-16 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-15

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-16

5.1.6 銷量統計子產品

銷量統計可以很直覺的為商家展示近期的銷量情況,并且檢視統計好的各類需要的資訊。具體如圖 5-17 所示:

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統
基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-17

5.1.7 智能推薦管理子產品

作為本系統與其他系統不同的特點,智能推薦是很重要的一部分内容,不僅可以促進銷量而且可以減少使用者盲目搜尋圖書的繁瑣步驟。具體設計如圖 5-18 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-18

5.1.8 公告管理子產品

公告是系統之中超級管理者給普通管理者配置設定任務的一種途徑,也是賣家釋出優惠資訊給買家的平台,在購物系統中是很重要的一部分,具體如下:

(1)公告清單查詢與顯示如圖 5-19 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-19

(2)公告釋出設計如圖 5-20 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-20

核心 controller 代碼如下:

@RequestMapping("/insertNotice")  
    public String toIndex(HttpServletRequest request,Model model,Notice notice) throws ParseException{  
		Date date=new Date();
		DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date time=dateFormat.parse(dateFormat.format(date));
		notice.setDate(time);
		noticeService.insert(notice);
        return "redirect:/notice/getNoticeByPage"; 
    }  
           

5.1.9 超級管理者賬号與權限管理子產品

作為一個背景管理系統,必須考慮系統的安全性,是以作為超級管理者可以随時管理賬号與權限,是以本子產品是系統不可或缺的一部分,具體設計實作如下:

(1)超級管理者查詢與管理界面 如圖 5-21 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-21

(2)超級管理者修改資訊界面 如圖 5-22 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-22

(3)超級管理者添加管理者界面 如圖 5-23 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-23

5.1.10 普通操作員賬号與權限管理子產品

普通操作員就不可以添加賬号和随便更改其他操作員的資訊,隻能修改個人資訊

效果如圖 5-24 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-24

5.1.11 修改密碼子產品

為了操作的安全性,在確定舊密碼正确的情況下允許管理者自己修改密碼 效果如圖 5-25 所示

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

圖 5-25

♻️ 資源

基于Java(SSM)+MySQL實作(Web)具有智能推薦功能的圖書銷售系統【100010208】具有智能推薦功能的圖書銷售系統

大小: 56.5MB

➡️ 資源下載下傳:https://download.csdn.net/download/s1t16/87354128