Spring Data MongoDB 教程

Spring Data MongoDB “Hello World”

我们还是按照管理,在学习一门新技术前,先编写一个 “Hello World” 程序,让 Spring Data MongoDB 正常运行起来。

为我们后续学习 Spring Data MongoDB 打下基础,提升信心。

注意:本章节将通过 Spring Boot 快速集成 Spring Data MongoDB。

安装 MongoDB

使用浏览器访问 https://www.mongodb.com/try/download/community  官网下载地址,根据自己操作系统类型选择合适的版本。

如何安装 MongDB 请点击参考 https://www.hxstrive.com/article/780.htm  文章(针对 Windows10 操作系统)。

添加 Maven 依赖

在 pom.xml 文件中添加如下依赖:

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

创建 Spring Boot 项目

使用浏览器访问 https://start.spring.io/  地址,在线创建一个 Spring Boot 项目,然后下载项目的 zip 包,解压后通过 IDEA 导入即可。或者直接使用 IDEA 进行创建 Spring Boot 项目,具体操作步骤不在赘述,读者自己 DIY。

编写 “Hello World” 程序

到这里,已经是万事俱备,只剩下我们编写一个 “Hello World” 程序去敲开 Spring Data MongoDB 的大门。

定义一个 User 实体,该实体和 MongoDB 的 users 集合进行映射,然后使用 MongoTemplate 模板对象操作集合。

定义 User 实体

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

/**
* users 集合映射集合
* @author hxstrive 2022/12/19
*/
@Document(collection = "users")
public class User {
   @Field("userId")
   private long id;

   @Field("name")
   private String name;

   @Field("age")
   private int age;


   public long getId() {
       return id;
   }

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

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }

   @Override
   public String toString() {
       return "User{" +
               "id=" + id +
               ", name='" + name + '\'' +
               ", age=" + age +
               '}';
   }
}

上面代码中,@Document 注释用来声明此类将被映射到 MongoDB 数据库的一个集合(collection 为集合名称)。@Field 注解用来映射集合中某条记录中的一个字段,其中 value 表示字段名称。

客户端代码

我们将使用一个 Spring Boot 单元测试类,来实现 User 对象写入到 MongoDB,然后又从 MongoDB 中取出 users 集合的数据。代码如下:

import com.huangx.springdata.mongondb.model.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import java.util.List;

/**
* 第一个 Spring Data MongoDB 示例
*/
@SpringBootTest
class HelloWorld {

   /** 自动注入 MongoDB 操作模板对象,类似 RedisTempalte */
   @Autowired
   private MongoTemplate mongoTemplate;

   /**
    * 向 users 集合写入数据,然后查询 users 集合中的所有记录
    */
   @Test
   void helloWorld() {
       // 写入数据
       User newUser = new User();
       newUser.setId(1);
       newUser.setName("Hxstrive");
       newUser.setAge(28);
       mongoTemplate.save(newUser);

       // 查询数据
       List<User> users = mongoTemplate.findAll(User.class, "users");
       for(User user : users) {
           System.out.println(user);
       }
   }

}

运行示例,输出如下:

User{id=1, name='Hxstrive', age=28}

使用 NoSQLBooster for MongoDB 查看结果,如下图:

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号