我们还是按照管理,在学习一门新技术前,先编写一个 “Hello World” 程序,让 Spring Data MongoDB 正常运行起来。
为我们后续学习 Spring Data MongoDB 打下基础,提升信心。
注意:本章节将通过 Spring Boot 快速集成 Spring Data MongoDB。
使用浏览器访问 https://www.mongodb.com/try/download/community 官网下载地址,根据自己操作系统类型选择合适的版本。
如何安装 MongDB 请点击参考 https://www.hxstrive.com/article/780.htm 文章(针对 Windows10 操作系统)。
在 pom.xml 文件中添加如下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
使用浏览器访问 https://start.spring.io/ 地址,在线创建一个 Spring Boot 项目,然后下载项目的 zip 包,解压后通过 IDEA 导入即可。或者直接使用 IDEA 进行创建 Spring Boot 项目,具体操作步骤不在赘述,读者自己 DIY。
到这里,已经是万事俱备,只剩下我们编写一个 “Hello World” 程序去敲开 Spring Data MongoDB 的大门。
定义一个 User 实体,该实体和 MongoDB 的 users 集合进行映射,然后使用 MongoTemplate 模板对象操作集合。
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 查看结果,如下图:

