Springboot集成Mongo(一)

Docker 軟件 文章 技術 小裁縫先生 小裁縫先生 2017-08-26

目前公司項目中採用的是採用的是微服務這一套東西,其中涉及到的東西有Docker,SpringBoot,SpringCloud,Zookeeper,Kafka等等,因為目前項目已經開展了有五個多月了,微服務該涉及到的大部分都涉及到了,後面會逐漸的把在這段時間的學習到的技術進行整理跟大家分享,今天這個就說一下SpringBoot集成Mongo的簡單使用。

我的開發運行環境中的Mongo是用的鏡像啟動的,Mongo客戶端軟件用的是Robomongo。

因為這篇文章講解的重心是Mongo的使用,所以如何創建Springboot工程就不做講解(留著後續講解)。對於在SpringBoot中使用Mongo其實很簡單,第一步就是在pom文件中增加Mongo的依賴,如下圖:

Springboot集成Mongo(一)

springboot中mongodb的依賴

跟jdbc類似的是,對於mongo,spring也提供了一個MongoTemplate。但是因為MongoTemplate是實現了MongoOperations,所以在代碼中我們一般使用MongoOperations。因此,我們在需要使用到的類中依賴MongoOperations即可,

Springboot集成Mongo(一)

依賴mongoOperations

在依賴了MongoOperations之後就可以根據api來操作mongo數據庫,但是在這之前我們得配置mongo的連接,在這裡我們在application.yml中增加相關的配置即可:

Springboot集成Mongo(一)

mongo配置

上圖中host為mongo的ip,port為端口,databse為數據庫,在配置完成之後我們就可以操作mongo。

在mongo鏡像啟動之後,用Robomongo客戶端連接,可以看到只有一個system節點

Springboot集成Mongo(一)

mongo初始

接下來我們測試添加操作,代碼我使用的JUnit寫了個單元測試。因為mongo的操作是基於對象的,所以在這之前我們需要創建一個對象,並加上相應的註解。

Springboot集成Mongo(一)

Bean

在上圖中@Document標識這個對象是mongo的一個存儲對象,@Id標識containerId為唯一標識,@Field標識這是字段。在對象創建完成之後,我們編寫插入的測試代碼,如下

Springboot集成Mongo(一)

插入mongo

在上圖中,第一處先判斷mongo中是否存在名為DockerInfo的collection(相當於關係型數據庫中的表),在第二處調用save的API進行插入,第一個參數為插入的對象,第二個參數為插入的collection,執行之後再次通過Robomongo查看數據庫情況,

Springboot集成Mongo(一)

插入的情況

從上圖中可以看到,第一處顯示了mongo的databse(跟配置信息中相同),第二處Collections中有DockerInfo,第三處為插入的數據信息,可以看到mongo中主鍵字段名為_id,除此之外數據庫中還保存了插入對象的類名,這樣一個簡單的插入就成功了。

在插入之後,我們可以通過主鍵來查詢剛剛插入的數據信息,

Springboot集成Mongo(一)

根據id查詢

從上圖可以看到,我們用的是findById方法,其中有三個參數,第一個為唯一標識,第二個為類名稱,第三個為collection名稱。

最後,我們再演示下刪除操作,

Springboot集成Mongo(一)

刪除操作

我們調用了remove方法,傳遞了兩個參數,第一個為對象(對象中設置了唯一標識),第二個為collection名稱,再執行之後再查看下數據庫,如下

Springboot集成Mongo(一)

刪除結果

到這裡為止,關於SpringBoot中的mongo的簡單使用就算結束了。可能大家會對yml文件以及為什麼配置了application.yml中的屬性就可以連接上mongo有疑問,這些都會在後續的文章中講解,除此後面還會給出mongo的其他用法,例如Query,Criteria等。

這些都是比較簡單的內容,旨在讓沒有接觸過的朋友知道這個東西,或者有個大概瞭解,然後自己可以去深入的研究,希望大家喜歡。

相關推薦

推薦中...