Spring Boot 中使用 MongoDB CRUD

Springboot整合MongodB的時候,出現了一些了小問題,今天準備發篇博客,來溫習一下.Mongodb,在上一篇中,我講了Mongodb的安裝,今天我們來講講
如何實現CRUD,寫的不錯的話,記得點關注哦 !

一、在idea中搭建環境

在這裏插入圖片描述

新建項目

在這裏插入圖片描述

選擇需要的依賴進行選擇性的加入

在這裏插入圖片描述在這裏插入圖片描述

添加依賴

pom.xml

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

實體類

package com.example.spirit.demo.model;
import org.springframework.data.mongodb.core.mapping.Document;
@Data
@Document(collection = "passenger")   
public class Mongo {
    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;
    }
}

Dao層

package com.example.spirit.dao;
 
import com.example.spirit.model.Mongo;
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 MongoDao {
 
 
    @Autowired
    private MongoTemplate mongoTemplate;
 
    /**
     * 創建對象
     */
    public void saveTest(Mongo mongod) {
        mongoTemplate.save(test);
    }
 
    /**
     * 根據用戶名查詢對象
     * @return
     */
    public Mongo findTestByName(String name) {
        Query query=new Query(Criteria.where("name").is(name));
        MongoTest mgt =  mongoTemplate.findOne(query , Mongo.class);
        return mgt;
    }
 
    /**
     * 更新對象
     */
    public void updateTest(Mongo  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,Mongo.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,Mongo.class);
    }
}

此處我用的是本地安裝的mongodb,所以沒有用戶名和密碼

applition.yml

spring:
    data:
        mongodb:
          uri: mongodb://localhost:27017/test
``

Controller

```java
package com.example.spiritmark.controller;
 
import com.example.spiritmark.dao.MongoDao;
import com.example.spiritmark.model.Mongo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class MongoController{
 
    @Autowired
    private MongotDao mtdao;
 
    @GetMapping(value="/test1")
    public void saveTest() throws Exception {
        Mongo mgtest=new Mongo();
        mgtest.setId(11);
        mgtest.setAge(33);
        mgtest.setName("ceshi");
        mtdao.saveTest(mgtest);
    }
 
    @GetMapping(value="/test2")
    public Mongo findTestByName(){
        Mongo mgtest= mtdao.findTestByName("ceshi");
        System.out.println("mgtest is "+mgtest);
        return mgtest;
    }
 
    @GetMapping(value="/test3")
    public void updateTest(){
        Mongo mgtest=new Mongo ();
        mgtest.setId(11);
        mgtest.setAge(44);
        mgtest.setName("ceshi2");
        mtdao.updateTest(mgtest);
    }
 
    @GetMapping(value="/test4")
    public void deleteTestById(){
        mtdao.deleteTestById(11);
    }
}

發送CRUD請求後在mongo庫中生成了對應的集合

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章