mongodb學習這篇你就成功入門了,springboot2.0整合mongodb


本文演示以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文件:

文件內容:

#數據庫路徑
dbpath=D:\development\mongoDb\data\db

#日志輸出文件路徑 
logpath=D:\development\mongoDb\logs\mongoLog.log

#錯誤日志采用追加模式
logappend=true

#啟用日志文件,默認啟用
journal=true

#這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false 
quiet=true

#端口號 默認為27017 
port=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

然后去數據庫看一下

 

我們發現,數據沒有了,因為已經被刪掉了,但是表還是存在的,庫也可以看到

推薦使用一個 工具:

 








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM