時間:2024-02-05 12:47作者:下載吧人氣:24
課程導學
我們都知道MongoDB是一款非常出色的非關系型文檔數據庫,你肯定會想問MongoDB這么強,我們該怎么用或者有啥運用場景呢?
MongoDB的應用場景非常多,無論是數據存儲還是日志存儲越來越多的公司在使用MongoDB,而我們今天也在SpringBoot基礎上使用MongoDB實現一個簡易版本的物流訂單管理系統。
在使用前,你自己的電腦上要有IDEA編譯器來創建項目,還要擁有MongoDB數據庫和Studio 3T(MongoDB可視化數據庫管理工具,下載地址https://studio3t.com/)。
案例分析
1.1 案例分析
我想,大部分人都應該有著購物的經歷,當商品下單時就會出現一個物流單號,接下來幾天內的物流信息會根據這個單號更新。
然后接下來的幾天可能會到達不同地點,進行更新,你可能會好奇這樣一個功能是如何實現,本案例就通過SpringBoot+MongoDB實現一個簡易版本的物流訂單系統。當然具體實現商用肯定要考慮很多細節也很復雜,本案例更側重于功能實現和MongoDB使用。
1.2 核心思路拆解
一個訂單數據是如何產生和更新的呢?首先一個訂單數據由下單時產生,然后該訂單經歷各個物流點更新物流信息和訂單狀態,最后在用戶取件之后訂單狀態更新后數據基本就不再更新了。
下單模塊:我想大部分人看過寄快遞下單流程或者自己下過單,核心就是一個表單頁面填寫寄件人姓名、地址、手機等信息和收件人姓名、地址、手機等信息。所以在這里具體實現也是填寫寄件人和收件人信息儲存。
物流模塊 :一個訂單下單后可能經歷若干物流地點,最終才能到達目的地被簽收。而就各個物流點來看,各個物流點的管理人員對該物流訂單添加一些物流信息,例如到達地址、訂單目前狀態、聯系方式等等。而本案例在添加物流信息的實現上也通過一個表單添加該訂單的物流信息,通過物流訂單的id進行聯立。
實現這種數據應該如何存儲?如果使用關系型數據庫,就單訂單物流信息存儲可能至少需要使用兩張表來實現,一張訂單(order)信息表存儲訂單一些固定欄位信息,一張物流(Logistics)信息表儲存動態的物流變化,通過訂單id實現兩張表的關聯。
按照E-R圖設計數據庫,按照我們簡潔的設計方式,其數據其中一部分的數據是這樣的:
物流表中的order_id外鍵引用order表中的id字段進行關聯。在查詢訂單數據的時候需要關聯查詢。物流訂單系統確實可以使用關系數據庫去實現,但是數據量過大可能會有性能瓶頸需要優化,如果采用MongoDB不僅可以提高效率,還可以使得流程變得更加簡單。
訂單的特點是隨著遞送過程,訂單數據需要隨時更新路徑。數據結構上需要可以靈活應對,這點非常符合MongoDB的document文檔模型,并且MongoDB支持GIS功能,非常適用于MongoDB來支撐物流業務(這里簡易版本就不使用該功能了)。而物流行業里訂單比較獨立,跨訂單的操作很少,創建、更新(追加)的操作會較多,物流業務模型上與MongoDB非常的匹配。本課程就是使用MongoDB實現一個物流訂單系統的小例子。
1.3 案例涉及知識點
SpringBoot
相信你對SpringBoot很熟悉,由于Spring的發展、微服務的發展使得SpringBoot越來越流行,已經成為JavaWeb開發的主流框架。
SpringBoot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,SpringBoot在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
簡而言之,SpringBoot是當前web開發主流,其簡化了Spring的配置讓開發者能夠更容易上手Web項目的開發。且MongdoDB能夠快速與SpringBoot整合,在項目中能夠快速便捷操作MongoDB;
MongoDB
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為web應用提供可擴展的高性能數據存儲解決方案。MongoDB是一個介于關系型數據庫和非關系型數據庫之間的產品,是非關系型數據庫當中功能最豐富,最像關系型數據庫的。它支持的數據結構非常松散,是類似JSON的BSON格式,因此可以存儲比較復雜的數據類型。MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
本案例就是基于SpringBoot和MongoDB實現一個物流訂單系統的小案例,實際的物流場景需要考慮的問題肯定很多也比較復雜,這是實現一個簡易版本的物流訂單系統主要為了MongoDB的使用和學習。
1.4案例實現步驟
分析完案例以及了解案例設計的知識點后,就可以一步一步開始動手實現本案例,本案例要實現的就是訂單創建、訂單信息更新、查詢、刪除的一個小型完整的物流訂單管理系統。而在具體實現上按照以下步驟:
整個案例實現火熱運行的環境如下:
實現步驟
第一步 預備工作
1.1 創建MongoDB數據庫
打開Studio 3T數據庫管理工具,連接本地MongoDB數據庫之后,創建名為test的數據庫,在test數據庫中創建名為order的集合:
1.2 創建SpringBoot項目
首先,打開IDEA創建項目,選擇創建SpringBoot項目:
然后在選擇Gruop和Aritifact的時候分別填寫com和mongodemo,Java Version選擇8版本。
在勾選模塊時候,這里勾選Spring web、MongoDB依賴模塊,選擇合適位置創建項目,項目就可以成功創建:
創建項目之后,需要做一些前置工作預備。
1.3 創建Java相關文件
創建完項目,我們需要做一些預備工作用來完成緩存。我們首先要在項目中的application.properties中添加配置連接到數據庫,配置規則為:spring.data.mongodb.uri=mongodb://地址:端口/數據庫名
,本案例使用本地的MongoDB數據庫,默認端口為27017,而使用的MongoDB具體數據庫名稱為test,那么就可以按照以下進行配置:
spring.data.mongodb.uri=mongodb://localhost:27017/test
網友評論