日韩av手机在线免费观看_四虎免看黄_亚洲一区中文字幕_亚洲小视频网站_国产一区日韩在线_国产欧美精品一区二区

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > DB2 > 分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

時(shí)間:2024-02-05 12:47作者:下載吧人氣:35

課程導(dǎo)學(xué)

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

我們都知道MongoDB是一款非常出色的非關(guān)系型文檔數(shù)據(jù)庫(kù),你肯定會(huì)想問MongoDB這么強(qiáng),我們?cè)撛趺从没蛘哂猩哆\(yùn)用場(chǎng)景呢?
MongoDB的應(yīng)用場(chǎng)景非常多,無論是數(shù)據(jù)存儲(chǔ)還是日志存儲(chǔ)越來越多的公司在使用MongoDB,而我們今天也在SpringBoot基礎(chǔ)上使用MongoDB實(shí)現(xiàn)一個(gè)簡(jiǎn)易版本的物流訂單管理系統(tǒng)

在使用前,你自己的電腦上要有IDEA編譯器來創(chuàng)建項(xiàng)目,還要擁有MongoDB數(shù)據(jù)庫(kù)和Studio 3T(MongoDB可視化數(shù)據(jù)庫(kù)管理工具,下載地址https://studio3t.com/)。

案例分析

1.1 案例分析

我想,大部分人都應(yīng)該有著購(gòu)物的經(jīng)歷,當(dāng)商品下單時(shí)就會(huì)出現(xiàn)一個(gè)物流單號(hào),接下來幾天內(nèi)的物流信息會(huì)根據(jù)這個(gè)單號(hào)更新。

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

然后接下來的幾天可能會(huì)到達(dá)不同地點(diǎn),進(jìn)行更新,你可能會(huì)好奇這樣一個(gè)功能是如何實(shí)現(xiàn),本案例就通過SpringBoot+MongoDB實(shí)現(xiàn)一個(gè)簡(jiǎn)易版本的物流訂單系統(tǒng)。當(dāng)然具體實(shí)現(xiàn)商用肯定要考慮很多細(xì)節(jié)也很復(fù)雜,本案例更側(cè)重于功能實(shí)現(xiàn)和MongoDB使用。

1.2 核心思路拆解

一個(gè)訂單數(shù)據(jù)是如何產(chǎn)生和更新的呢?首先一個(gè)訂單數(shù)據(jù)由下單時(shí)產(chǎn)生,然后該訂單經(jīng)歷各個(gè)物流點(diǎn)更新物流信息和訂單狀態(tài),最后在用戶取件之后訂單狀態(tài)更新后數(shù)據(jù)基本就不再更新了。

下單模塊:我想大部分人看過寄快遞下單流程或者自己下過單,核心就是一個(gè)表單頁(yè)面填寫寄件人姓名、地址、手機(jī)等信息和收件人姓名、地址、手機(jī)等信息。所以在這里具體實(shí)現(xiàn)也是填寫寄件人和收件人信息儲(chǔ)存。

物流模塊 :一個(gè)訂單下單后可能經(jīng)歷若干物流地點(diǎn),最終才能到達(dá)目的地被簽收。而就各個(gè)物流點(diǎn)來看,各個(gè)物流點(diǎn)的管理人員對(duì)該物流訂單添加一些物流信息,例如到達(dá)地址、訂單目前狀態(tài)、聯(lián)系方式等等。而本案例在添加物流信息的實(shí)現(xiàn)上也通過一個(gè)表單添加該訂單的物流信息,通過物流訂單的id進(jìn)行聯(lián)立。

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

實(shí)現(xiàn)這種數(shù)據(jù)應(yīng)該如何存儲(chǔ)?如果使用關(guān)系型數(shù)據(jù)庫(kù),就單訂單物流信息存儲(chǔ)可能至少需要使用兩張表來實(shí)現(xiàn),一張訂單(order)信息表存儲(chǔ)訂單一些固定欄位信息,一張物流(Logistics)信息表儲(chǔ)存動(dòng)態(tài)的物流變化,通過訂單id實(shí)現(xiàn)兩張表的關(guān)聯(lián)。

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

按照E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù),按照我們簡(jiǎn)潔的設(shè)計(jì)方式,其數(shù)據(jù)其中一部分的數(shù)據(jù)是這樣的:

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

物流表中的order_id外鍵引用order表中的id字段進(jìn)行關(guān)聯(lián)。在查詢訂單數(shù)據(jù)的時(shí)候需要關(guān)聯(lián)查詢。物流訂單系統(tǒng)確實(shí)可以使用關(guān)系數(shù)據(jù)庫(kù)去實(shí)現(xiàn),但是數(shù)據(jù)量過大可能會(huì)有性能瓶頸需要優(yōu)化,如果采用MongoDB不僅可以提高效率,還可以使得流程變得更加簡(jiǎn)單。

訂單的特點(diǎn)是隨著遞送過程,訂單數(shù)據(jù)需要隨時(shí)更新路徑。數(shù)據(jù)結(jié)構(gòu)上需要可以靈活應(yīng)對(duì),這點(diǎn)非常符合MongoDB的document文檔模型,并且MongoDB支持GIS功能,非常適用于MongoDB來支撐物流業(yè)務(wù)(這里簡(jiǎn)易版本就不使用該功能了)。而物流行業(yè)里訂單比較獨(dú)立,跨訂單的操作很少,創(chuàng)建、更新(追加)的操作會(huì)較多,物流業(yè)務(wù)模型上與MongoDB非常的匹配。本課程就是使用MongoDB實(shí)現(xiàn)一個(gè)物流訂單系統(tǒng)的小例子。

1.3 案例涉及知識(shí)點(diǎn)

SpringBoot
相信你對(duì)SpringBoot很熟悉,由于Spring的發(fā)展、微服務(wù)的發(fā)展使得SpringBoot越來越流行,已經(jīng)成為JavaWeb開發(fā)的主流框架。

SpringBoot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,SpringBoot在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。

簡(jiǎn)而言之,SpringBoot是當(dāng)前web開發(fā)主流,其簡(jiǎn)化了Spring的配置讓開發(fā)者能夠更容易上手Web項(xiàng)目的開發(fā)。且MongdoDB能夠快速與SpringBoot整合,在項(xiàng)目中能夠快速便捷操作MongoDB;

MongoDB
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C++語言編寫。旨在為web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB是一個(gè)介于關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系型數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似JSON的BSON格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。MongoDB最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。

本案例就是基于SpringBoot和MongoDB實(shí)現(xiàn)一個(gè)物流訂單系統(tǒng)的小案例,實(shí)際的物流場(chǎng)景需要考慮的問題肯定很多也比較復(fù)雜,這是實(shí)現(xiàn)一個(gè)簡(jiǎn)易版本的物流訂單系統(tǒng)主要為了MongoDB的使用和學(xué)習(xí)。

1.4案例實(shí)現(xiàn)步驟

分析完案例以及了解案例設(shè)計(jì)的知識(shí)點(diǎn)后,就可以一步一步開始動(dòng)手實(shí)現(xiàn)本案例,本案例要實(shí)現(xiàn)的就是訂單創(chuàng)建、訂單信息更新、查詢、刪除的一個(gè)小型完整的物流訂單管理系統(tǒng)。而在具體實(shí)現(xiàn)上按照以下步驟:

  • 預(yù)備工作:創(chuàng)建數(shù)據(jù)庫(kù)和項(xiàng)目
  • 訂單添加
  • 訂單更新
  • 訂單查詢
  • 訂單刪除

整個(gè)案例實(shí)現(xiàn)火熱運(yùn)行的環(huán)境如下:

  • 操作系統(tǒng):Windows10
  • JDK版本:JDK8
  • 編譯器:IDEA
  • MongoDB版本:4.4.0
  • MongoDB可視化管理工具:Studio 3T

實(shí)現(xiàn)步驟
第一步 預(yù)備工作

1.1 創(chuàng)建MongoDB數(shù)據(jù)庫(kù)

打開Studio 3T數(shù)據(jù)庫(kù)管理工具,連接本地MongoDB數(shù)據(jù)庫(kù)之后,創(chuàng)建名為test的數(shù)據(jù)庫(kù),在test數(shù)據(jù)庫(kù)中創(chuàng)建名為order的集合:

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

1.2 創(chuàng)建SpringBoot項(xiàng)目

首先,打開IDEA創(chuàng)建項(xiàng)目,選擇創(chuàng)建SpringBoot項(xiàng)目:

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

然后在選擇Gruop和Aritifact的時(shí)候分別填寫commongodemo,Java Version選擇8版本。

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

在勾選模塊時(shí)候,這里勾選Spring web、MongoDB依賴模塊,選擇合適位置創(chuàng)建項(xiàng)目,項(xiàng)目就可以成功創(chuàng)建:

分享SpringBoot+MongoDB實(shí)現(xiàn)物流訂單系統(tǒng)的代碼

創(chuàng)建項(xiàng)目之后,需要做一些前置工作預(yù)備。

1.3 創(chuàng)建Java相關(guān)文件

創(chuàng)建完項(xiàng)目,我們需要做一些預(yù)備工作用來完成緩存。我們首先要在項(xiàng)目中的application.properties中添加配置連接到數(shù)據(jù)庫(kù),配置規(guī)則為:spring.data.mongodb.uri=mongodb://地址:端口/數(shù)據(jù)庫(kù)名,本案例使用本地的MongoDB數(shù)據(jù)庫(kù),默認(rèn)端口為27017,而使用的MongoDB具體數(shù)據(jù)庫(kù)名稱為test,那么就可以按照以下進(jìn)行配置:

spring.data.mongodb.uri=mongodb://localhost:27017/test
標(biāo)簽MongoDB,技術(shù)文檔,數(shù)據(jù)庫(kù),MongoDB

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 欧美日韩大片 | 国产一区二区在线播放 | 欧美中文字幕一区 | 日韩欧美在线一区 | 日韩中文字幕久久 | 偷拍亚洲色图 | 欧美极品在线 | 亚洲性人人天天夜夜摸 | 久久6| 一级免费在线视频 | 在线视频成人 | 成人久久久 | 自拍偷拍中文字幕 | 国产在线视频一区二区 | 精品欧美一区二区中文字幕视频 | 伊人中文字幕 | 日韩久久久久久 | 在线日韩欧美 | 黄色片av | 中文字幕视频一区 | 中文字幕亚洲国产 | 国产一级一级毛片 | 久久久久久久一区二区 | 黄色大片在线视频 | 特黄小视频 | 久久精品亚洲 | 色爱综合网 | 91在线视频在线观看 | 中文字幕影院 | 精品免费国产视频 | 国产精品久久久av | 婷婷综合在线 | 日本视频在线播放 | 伦理二区 | 黄色激情毛片 | 精品国产免费人成在线观看 | 亚洲毛片网站 | 免费成人高清在线视频 | 亚洲小说图片 | 亚洲不卡在线观看 | 欧美三级视频在线观看 |