SpringBoot整合MongoDB

本文详细介绍如何在SpringBoot项目中整合Mongodb,包括项目搭建、依赖配置、实体类定义、Repository接口创建及Controller实现,最后通过实例演示数据的增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot_Mongodb整合
**

一、新建一个SpringBoot项目

二、项目结构图

在这里插入图片描述

三、依赖文件(pom.xml)

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
2.1.4.RELEASE


com.example
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot

<properties>
    <java.version>1.8</java.version>
</properties>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

## 四、配置文件(application.propertity)

server.port=80
#test为对应的数据库(可自己改动)
spring.data.mongodb.uri= mongodb://localhost:27017/test

五、创建一个实体类User

package com.example.demo.pojo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection=“user”)//指定mongdb中对应的集合
public class User {

@Id
private Long id;

private String username;

private String password;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public User(Long id, String username, String password) {
    this.id = id;
    this.username = username;
    this.password = password;
}

}


六、创建User的接口类UserRepository

package com.example.demo.repository;

import com.example.demo.pojo.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends MongoRepository<User,Long> {
}

七、创建Controller

package com.example.demo.controller;

import com.example.demo.pojo.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {

@Autowired
private UserRepository userRepository;

@GetMapping("save")
public String save() {
    User User = new User(12L, "苏金帅", "1234");
    userRepository.save(User);
    return "success";
}


@GetMapping("getUserList")
public List<User> getUserList() {
    List<User> UserList = userRepository.findAll();
    return UserList;
}


@GetMapping("update")
public String update(Long id, String username, String password) {
    User User = new User(id, username, password);
    userRepository.save(User);
    return "success";
}

@GetMapping("delete")
public String deleteById(Long id) {
    userRepository.deleteById(id);
    return "success";
}

}

到这里项目就创建完成了。

## 八、启动项目
在浏览器中访问http://localhost/save即可实现插入数据,其他的方法同样。

注:在启动项目前,一定要启动mongodb数据库。


### Spring Boot 整合 MongoDB 示例教程 #### 配置 `application.yml` 文件中的 MongoDB 连接信息 为了使Spring Boot应用能够连接到MongoDB,在项目的资源目录下的`application.yml`文件中指定MongoDB的相关参数: ```yaml spring: data: mongodb: host: localhost port: 27017 database: test ``` 当MongoDB实例未设置认证机制时,也可以采用URI形式简化配置[^3]。 #### 创建实体类映射文档结构 定义一个Java类来表示存储于MongoDB集合内的文档模型。例如,创建名为`Comment.java`的POJO(Plain Old Java Object),它代表评论表单的数据对象并标注适当注解以便ORM框架识别其为持久化实体。 ```java package com.example.demo_mongodb.po; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "comments") public class Comment { @Id private String id; private String content; private Long timestamp; // Getters and Setters... } ``` #### 定义数据访问接口继承自 `MongoRepository` 通过扩展`MongoRepository<T, ID>`接口的方式快速获得CRUD功能支持,无需编写具体实现逻辑即可完成对特定类型的增删改查操作。这里展示了一个简单的仓库接口声明——`CommentRepository.java`: ```java package com.example.demo_mongodb.dao; import com.example.demo_mongodb.po.Comment; import org.springframework.data.mongodb.repository.MongoRepository; public interface CommentRepository extends MongoRepository<Comment, String> { } ``` 上述代码片段展示了如何利用Spring Data JPA提供的特性轻松地与MongoDB交互,从而专注于业务逻辑而非底层细节处理[^5]。 #### 测试服务层方法验证整合效果 最后一步是在控制器或者其他组件里注入之前建立好的仓储接口,并调用相应的方法来进行测试。这有助于确认整个系统的连通性和预期行为的一致性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值