一 項目介紹
? ?本項目采用集成開發平臺IntelliJ IDEA開發了在線作業成績統計系統的設計與實現,實現了圖書商城系統的綜合功能和圖形界面的顯示,可以根據每個用戶登錄系統后,動態展示書城首頁圖書,實現了分類還有分頁查詢,還有用戶可以添加圖書到購物車,可以查看圖書詳情等基本功能。Springboot,SpringMVC,Mybatis等技術。
二 功能詳細描述
該系統總共分為書城首頁展示功能、書本詳情功能,購物車功能,頁面動態渲染功能,具體功能如下介紹:
(1) 書城首頁展示功能:當用戶訪問首頁時,我們會根據書本類型,書本價格,書本上架時間等對從數據庫查詢到的數據進行一個分頁查詢。
(2) 書本詳情功能:當用戶進入首頁看見展示的圖書后,用戶可以通過點擊書本從而進入該書本的詳情頁面,該頁面包括了書本所有的詳細信息。
(3) 購物車功能:該功能是一個較為核心的功能,首先用戶在進入購物車功能之前,我們會先判斷用戶是否已經登錄,我們使用的springMVC提供的攔截器進行實現,因為查詢購物車的信息需要使用用戶id。在進入購物車之后,首先我們會根據用戶的id和購物車信息進行多表聯查,將查詢到的數據同樣根據圖書的分類,價格已經上架時間使用分頁查詢進行動態展示。同時,購物車也提供了對物品基本的刪除,價格統計等功能。
(4) 頁面動態渲染。該功能前端主要是使用jQuery來寫的前端頁面,然后通過ajax與后端進行交互,得到動態數據渲染在前端頁面。
三 數據庫表的設計
? ? ?本項目主要四張表,分別是用戶信息表,用于存儲用戶的基本信息;圖書信息表,用于展示圖書的基本信息;圖書分類表,用于后續對圖書進行分類展示;購物車信息表,用于表示每個用戶收藏購物車圖書的信息。
? ? ?下面將分別展示每一張表的設計:
?
?
四 技術實現和難點?
?4.1 登錄注冊功能
? ? ? ? 該功能沒有什么特別大的難點,主要需要注意兩點,第一點就是我們需要使用自定義全局異常處理器,對用戶名和密碼的正確性進行一個自定義的異常信息拋出。另外一點就是,為了方便后面業務邏輯的進行,我們在登錄成功后,需要把用戶的信息存入Session中,后面需要用的時候可以隨時取。
4.2 書城首頁功能
? ? ? ?該功能是比較核心的功能,它幾乎包攬了我們平時使用的curd,但是稍微復雜一點的就是,我們需要根據前端數據動態查詢sql。比如我們需要進行圖書的分類查詢,也可能需要根據價格或者上架時間來查詢。另外一點就是分頁查詢,這個也是我們必須要掌握的。
4.3 購物車功能
? ? ? ?該功能和首頁類型,也是對圖書進行curd,但是他有一點需要注意,就是我們在進入購物車功能之前需要先進行判斷用戶是否已經登錄,如果沒有登錄是不能進入購物車功能的,因為購物車的數據需要使用已經登錄用戶的uid進行數據庫查詢。所以這里就需要使用攔截器,對購物車請求進行攔截,先判斷用戶是否登錄,如果登錄了攔截器才會放行該請求。
4.4 瀏覽歷史功能
? ? ? ?該功能暫未實現。因為我有一種思路就是再建一個表,然后根據該表中的時間字段進行排序查找,只根據最近時間展示前兩本書數據,但是因為項目并沒有給我們這個表,所以有點不科學。然后又想到了第二種方法,就是把游覽的書本數據存入到前端的cookie或者Session中,然后再去里面拿,但是因為還沒有試過,不知道怎么解決拿到最近兩本書的信息,后面會再進行功能補充。
五 基本頁面運行展示
5.1登錄注冊頁面
5.2書城首頁頁面?
?
5.3購物車頁面
?六 設計感言
作為計算機學院的學生,我覺得能做類似的課程設計是十分有意義,而且十分必要的。經過一周的課程設計,我成功的實現了成績導入,數據查詢,統計,刪改等基本功能。
本次的課程提高了我編輯代碼的能力和分析問題的能力,讓我充分利用專業課程所學的知識來解決問題。也解決了我平時拖沓這種不好的學習習慣,增強了學習興趣。學習的過程有樂趣也有困難,通過查閱課本,參考了網上的設計流程還有老師的講解逐漸完成了本次任務。
寫完運行時出現了很多問題,通過請教老師講解不會的難點,解決了哈夫曼樹如何打印在文檔中的問題。并且與同學們的與分享解決了很多的基本問題。最后本次的課程設計使我學到了很多有用的東西,對今后的學習也有了很多幫助。
此次課程設計給我印象最深的就是通過對這個課題的訓練,使我基本掌握了Java編程的基礎知識,主體模塊與功能模塊的結合技巧、方法,讓我發現了自己的不足之處而且學會了如何查找資料,提高了我的自學能力,也鍛煉了我分析問題、解決問題的能力!邊學邊用這樣才會提高效率,也提高了自己對專業的興趣!
最后該項目的源碼我已經放在了我主頁的資源里面,名字叫做《書城項目》,另外如果有需要交課設的同學,可以找我拿項目文檔。