📜  Spring Boot – MongoRepository 与示例(1)

📅  最后修改于: 2023-12-03 15:20:12.701000             🧑  作者: Mango

Spring Boot – MongoRepository 与示例

MongoRepository是Spring Data MongoDB项目中的一部分。它是一个用于基于MongoDB数据库的CRUD操作的库。 它提供了简洁的方式来执行MongoDB的操作,消除了冗长的代码。

在本文中,我们将学习如何使用Spring Boot和MongoRepository来进行MongoDB数据库操作。

环境要求
  • JDK 1.8或更高版本
  • Maven 3.2或更高版本
  • Spring Boot 2.1.3.RELEASE
  • MongoDB 3.6或更高版本
Maven依赖

使用MongoRepository之前,我们需要将它的依赖添加到我们的Maven pom.xml文件中。 我们可以使用以下依赖来添加Spring Data Mongo到我们的项目中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
</dependencies>
配置连接MongoDB

我们需要在src/main/resources目录下创建一个application.properties文件来指定MongoDB连接的详细信息。 在这个例子中,我们假设MongoDB运行在本地,并使用默认端口27017。

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
创建实体类

接下来,我们需要定义一个实体类来映射MongoDB集合。 在这个例子中,我们定义一个名为Student的类。

package com.example.demo.model;

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

@Document(collection = "students")
public class Student {
    private String id;
    private String name;
    private int age;
    private String email;

    public Student() {
    }

    public Student(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    // getters and setters
}

在这个例子中,我们使用@Document注释来指定实体类将被存储在名为“学生”的集合中。我们还定义了一些字段,如名称,年龄和电子邮件。

现在我们的实体类已经定义完毕,我们可以开始使用MongoRepository了。

创建MongoRepository

我们将创建一个名为StudentRepository的接口,继承MongoRepository< Student,String >。 这个接口将使我们能够进行所有标准的CRUD操作。

package com.example.demo.repository;

import com.example.demo.model.Student;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface StudentRepository extends MongoRepository<Student, String> {
}

在这个例子中,我们定义了一个空接口“StudentRepository”,它扩展了MongoRepository。 由于我们的实体类是Student且具有String类型的ID,因此我们将MongoRepository泛型类型设置为“Student”和“String”。

进行CRUD操作

我们现在已经创建了MongoRepository和Student实体类,并设置了MongoDB的连接信息,我们可以开始进行CRUD操作了。

插入数据

我们可以通过调用save方法来将一个新的学生对象插入到MongoDB集合中。

@Autowired
private StudentRepository studentRepository;

public void insertStudent() {
    Student student = new Student("Tom", 18, "tom@example.com");
    studentRepository.save(student);
}
查询数据

我们可以通过ID来查询指定的学生。

public void findStudentById(String id) {
    Optional<Student> optional = studentRepository.findById(id);
    if (optional.isPresent()) {
        Student student = optional.get();
        // Found student by ID
    }
}

我们还可以在MongoRepository中自定义一些查询方法,这些方法将返回一个或多个与特定条件匹配的Student对象。 例如,我们可以按名称查询学生。

public List<Student> findStudentByName(String name) {
    return studentRepository.findByName(name);
}
更新数据

我们可以通过调用save方法并传递一个已经存在的学生对象来更新MongoDB中的数据。

public void updateStudent(Student student) {
    student.setName("John");
    studentRepository.save(student);
}
删除数据

我们可以通过调用MongoRepository的delete方法来删除指定的学生。

public void deleteStudent(Student student) {
    studentRepository.delete(student);
}
结论

在本文中,我们学习了如何使用Spring Boot和MongoRepository来进行MongoDB数据库操作。 我们了解了与MongoRepository一起使用的步骤,包括配置连接MongoDB,创建实体类,创建MongoRepository并执行CRUD操作。 为了详细了解如何使用MongoRepository,请查看Spring Data MongoDB官方文档。