📌  相关文章
📜  Spring Boot 中连接 mongo 数据库 - Go 编程语言 - Go 编程语言(1)

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

在 Spring Boot 中连接 MongoDB

本文将介绍如何在 Spring Boot 应用程序中连接 MongoDB 数据库。在本文中,我们将使用 Spring Boot 版本 2.x 和 MongoDB 驱动程序版本 3.x。

准备工作

在开始连接 MongoDB 数据库之前,我们需要确保以下几点:

  • MongoDB 数据库已经安装并运行在本地端口(默认端口为 27017)。
  • 有一个用于连接 MongoDB 数据库的用户。
  • 在 pom.xml 文件中添加以下依赖项:
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
</dependencies>

这将在项目中添加 Spring Data MongoDB 的依赖项。

配置 MongoDB 数据库

要配置 MongoDB 数据库,请在 application.properties 或 application.yml 文件中添加以下属性:

spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: mydb
      username: myuser
      password: mypass

这将配置 Spring Boot 应用程序连接到名为 mydb 的 MongoDB 数据库,并使用提供的用户名和密码进行身份验证。如果 MongoDB 是在不同的主机上运行,则需要更改 host 和 port 属性的值。

创建 MongoDB 模型

在连接到 MongoDB 数据库之前,我们需要定义一个数据模型。我们将创建一个名为 Person 的简单模型,如下所示:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "person")
public class Person {
    @Id
    private String id;
    private String firstName;
    private String lastName;
    private Integer age;
}

我们使用 Lombok 库来自动创建 getter 和 setter 方法。注意,我们使用 @Document 注释指定模型的集合名称为 "person"。

创建 MongoDB 存储库

存储库是用于在应用程序和数据库之间进行通信的接口。我们将使用 Spring Data MongoDB 创建一个存储库,如下所示:

@Repository
public interface PersonRepository extends MongoRepository<Person, String> {
    List<Person> findByFirstName(String firstName);
    List<Person> findByLastName(String lastName);
    List<Person> findByAgeGreaterThan(Integer age);
}

我们现在可以使用 PersonRepository 接口的方法执行 CRUD 操作。

在 Spring Boot 中使用 MongoDB

在我们的应用程序中使用 MongoDB 存储库非常简单。我们只需要在需要使用存储库的地方自动装配它就行了:

@Service
public class PersonService {
    @Autowired
    private PersonRepository repository;

    public void savePerson(Person person) {
        repository.save(person);
    }

    public List<Person> findByFirstName(String firstName) {
        return repository.findByFirstName(firstName);
    }

    public List<Person> findByLastName(String lastName) {
        return repository.findByLastName(lastName);
    }

    public List<Person> findByAgeGreaterThan(Integer age) {
        return repository.findByAgeGreaterThan(age);
    }
}

在上面的代码中,我们使用 @Autowired 注释将 PersonRepository 存储库自动注入到 PersonService 类中。

我们现在可以从我们的应用程序中调用 PersonService 类中的方法,并与 MongoDB 数据库进行通信。

结论

在本文中,我们介绍了如何在 Spring Boot 应用程序中连接到 MongoDB 数据库。我们学习了如何创建 MongoDB 模型、存储库和如何与存储库进行交互。如果您想了解更多关于 Spring Boot 和 MongoDB 的信息,可以查看 Spring Data MongoDB 的官方文档。