本文演示以window10系統。
一:環境搭建:
1:mongodb下載和安裝:
http://www.mongodb.org/官網下載壓縮包或者exe傻瓜式安裝都行。
2:mongodb配置和搭建服務自動開機啟動
個人目錄先亮劍
是否搭建成功?訪問這個就行了
訪問http://127.0.0.1:27017/,如果出現下面的英文說明啟動成功了:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
以管理員進入cmd:
進入到指定的bin文件目錄下。
D:
D:\development\mongoDb\bin
跟bin同級創建 logs和data\db文件夾
同級創建
mongodb.conf文件:
文件內容:
#數據庫路徑 #日志輸出文件路徑 #錯誤日志采用追加模式 #啟用日志文件,默認啟用 #這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false #端口號 默認為27017 |
啟動mongodb的方式:
第一種:
進入到bin目錄運行cmd
mongod --dbpath D:\development\mongoDb\data\db
第二種:
mongod --config D:\development\mongoDb\mongodb.conf
第三種:
創建Windows服務
mongod --config D:\development\mongoDb\mongodb.conf --install --serviceName "MongoDB"
然后在運行啟動命令
net start MongoDB
- 如果需要卸載MongoDB服務,首先進入D:\MongoDB\bin目錄下,執行如下命令:
mongod.exe --remove --serviceName "MongoDB"
3:springboot整合mongdb
使用idea:
選擇這倆個即可
搭建成功
二 使用mongodb進行增刪改查,入門demo
項目目錄結構:
MongoTestC類:
1 package com.fage.sbmongodb.controllers; 2 3 import com.fage.sbmongodb.dao.MongoTestDao; 4 import com.fage.sbmongodb.model.MongoTest; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.RestController; 8 9 @RestController 10 public class MongoTestC { 11 12 @Autowired 13 private MongoTestDao mtdao; 14 15 @GetMapping(value="/test1") 16 public void saveTest() throws Exception { 17 MongoTest mgtest=new MongoTest(); 18 mgtest.setId(11); 19 mgtest.setAge(33); 20 mgtest.setName("ceshi"); 21 mtdao.saveTest(mgtest); 22 } 23 24 @GetMapping(value="/test2") 25 public MongoTest findTestByName(){ 26 MongoTest mgtest= mtdao.findTestByName("ceshi"); 27 System.out.println("mgtest is "+mgtest); 28 return mgtest; 29 } 30 31 @GetMapping(value="/test3") 32 public void updateTest(){ 33 MongoTest mgtest=new MongoTest(); 34 mgtest.setId(11); 35 mgtest.setAge(44); 36 mgtest.setName("ceshi2"); 37 mtdao.updateTest(mgtest); 38 } 39 40 @GetMapping(value="/test4") 41 public void deleteTestById(){ 42 mtdao.deleteTestById(11); 43 } 44 }
MongoTestDao類:
package com.fage.sbmongodb.dao; import com.fage.sbmongodb.model.MongoTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; @Component public class MongoTestDao { @Autowired private MongoTemplate mongoTemplate; /** * 創建對象 */ public void saveTest(MongoTest test) { mongoTemplate.save(test); } /** * 根據用戶名查詢對象 * @return */ public MongoTest findTestByName(String name) { Query query=new Query(Criteria.where("name").is(name)); MongoTest mgt = mongoTemplate.findOne(query , MongoTest.class); return mgt; } /** * 更新對象 */ public void updateTest(MongoTest test) { Query query=new Query(Criteria.where("id").is(test.getId())); Update update= new Update().set("age", test.getAge()).set("name", test.getName()); //更新查詢返回結果集的第一條 mongoTemplate.updateFirst(query,update,MongoTest.class); //更新查詢返回結果集的所有 // mongoTemplate.updateMulti(query,update,TestEntity.class); } /** * 刪除對象 * @param id */ public void deleteTestById(Integer id) { Query query=new Query(Criteria.where("id").is(id)); mongoTemplate.remove(query,MongoTest.class); } }
MongoTest類:
package com.fage.sbmongodb.model; public class MongoTest { private Integer id; private Integer age; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
application.yml,
不用擔心你的mongodb是否有test數據庫,沒有會自動幫你創建的。如果有密碼什么的自行百度設置即可,很簡單的
spring: data: mongodb: uri: mongodb://localhost:27017/test
此處我用的是本地安裝的mongodb,所以沒有用戶名和密碼,有用戶名和密碼的格式是
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test,其中name是用戶名,pass是密碼
如果要配置多個數據庫,則中間用","分割,例如
spring.data.mongodb.uri=mongodb://192.168.1.1:20000,192.168.1.2:20000,192.168.252.12:20000/test
下面我們啟動程序進行測試
1)新增
我們先在瀏覽器輸入http://localhost:1234/test1
調用了controller中的新增方法,此時數據庫應該有值,我們執行相關命令看一下
我們發現,我們使用use test命令創建新庫的時候,當庫里還沒有表的時候,我們使用show dbs是看不到這個庫的,
當我們在瀏覽器敲了回車之后,我們發現可以看到test庫了,同時test庫中也有了mongoTest表,使用db.mongoTest.find()命令就可以看到數據了,符合要求
2)查詢
我們在瀏覽器輸入http://localhost:1234/test2
即可查看到剛才插入的那條數據
3)修改
我們在瀏覽器輸入http://localhost:1234/test3
然后去數據庫看一下
果然發生了變化
4)刪除
我們在瀏覽器輸入http://localhost:1234/test4
然后去數據庫看一下
我們發現,數據沒有了,因為已經被刪掉了,但是表還是存在的,庫也可以看到
推薦使用一個 工具: