Spring Boot 中使用 MongoDB CRUD

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42145856/article/details/102080281

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库中生成了对应的集合

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42145856/article/details/102080281