MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB

释放双眼,带上耳机,听听看~!

Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。Spring Boot的目的是提供一组工具,以便快速构建容易配置的Spring应用程序,省去大量传统Spring项目的繁琐配置。

MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

本文介绍如何使用Spring Boot操作MongoDB,通过Java代码在MongoDB里插入数据。

首先按照这个教程的第一篇文章的介绍,在本地搭建好MongoDB的环境:

MongoDB最简单的入门教程之一 环境搭建**。**

新建一个Java项目,pom.xml的内容如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
1<?xml version="1.0" encoding="UTF-8"?>
2
3<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
5xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6
7<modelVersion>4.0.0</modelVersion>
8
9<groupId>org.springframework</groupId>
10
11<artifactId>gs-rest-service</artifactId>
12
13<version>0.1.0</version>
14
15<parent>
16
17<groupId>org.springframework.boot</groupId>
18
19<artifactId>spring-boot-starter-parent</artifactId>
20
21<version>2.0.3.RELEASE</version>
22
23</parent>
24
25<dependencies>
26
27<dependency>
28
29<groupId>org.springframework.boot</groupId>
30
31<artifactId>spring-boot-starter-web</artifactId>
32
33</dependency>
34
35<dependency>
36
37<groupId>org.mongodb</groupId>
38
39<artifactId>mongodb-driver</artifactId>
40
41<version>3.6.4</version>
42
43</dependency>
44
45<dependency>
46
47<groupId>org.springframework.boot</groupId>
48
49<artifactId>spring-boot-starter-test</artifactId>
50
51<scope>test</scope>
52
53</dependency>
54
55<dependency>
56
57<groupId>com.jayway.jsonpath</groupId>
58
59<artifactId>json-path</artifactId>
60
61<scope>test</scope>
62
63</dependency>
64
65<dependency>
66
67<groupId>org.springframework.boot</groupId>
68
69<artifactId>spring-boot-starter-data-mongodb</artifactId>
70
71</dependency>
72
73</dependencies>
74
75<properties>
76
77<java.version>1.8</java.version>
78
79</properties>
80
81<build>
82
83<plugins>
84
85<plugin>
86
87<groupId>org.springframework.boot</groupId>
88
89<artifactId>spring-boot-maven-plugin</artifactId>
90
91</plugin>
92
93</plugins>
94
95</build>
96
97<repositories>
98
99<repository>
100
101<id>spring-releases</id>
102
103<url>https://repo.spring.io/libs-release</url>
104
105</repository>
106
107</repositories>
108
109<pluginRepositories>
110
111<pluginRepository>
112
113<id>spring-releases</id>
114
115<url>https://repo.spring.io/libs-release</url>
116
117</pluginRepository>
118
119</pluginRepositories>
120
121</project>
122

其中这个dependency的作用是为SpringBoot应用提供操作MongoDB的功能:


1
2
3
4
5
6
7
8
1<dependency>
2
3<groupId>org.springframework.boot</groupId>
4
5<artifactId>spring-boot-starter-data-mongodb</artifactId>
6
7</dependency>
8

这个dependent能让您的Spring Boot应用支持junit:


1
2
3
4
5
6
7
8
9
10
1<dependency>
2
3<groupId>org.springframework.boot</groupId>
4
5<artifactId>spring-boot-starter-test</artifactId>
6
7<scope>test</scope>
8
9</dependency>
10

在src/main/test文件夹下创建一个以Tests结尾的.java文件,我的例子里是ApplicationTests.java:

将如下代码粘贴进去:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1package main.test;
2import org.junit.Before;
3import org.junit.Test;
4import org.junit.runner.RunWith;
5import org.springframework.beans.factory.annotation.Autowired;
6import org.springframework.boot.test.context.SpringBootTest;
7import org.springframework.test.context.junit4.SpringRunner;
8import main.java.library.Application;
9import main.java.library.Book;
10import main.java.library.BookRepository;
11@RunWith(SpringRunner.class)
12@SpringBootTest(classes=Application.class)
13public class ApplicationTests {
14    @Autowired
15    private BookRepository bookRepository;
16    @Before
17    public void setUp() {
18        bookRepository.deleteAll();
19    }
20    @Test
21    public void test() throws Exception {
22        bookRepository.save(new Book("1", "didi", "Jerry"));
23    }
24}
25

第27行代码,新建了一个Book对象,id为1,name为didi,作者为Jerry。然后通过bookRepository加入到MongoDB里。

BookRepository的实现:


1
2
3
4
5
6
1import java.util.Optional;
2import org.springframework.data.mongodb.repository.MongoRepository;
3public interface BookRepository extends MongoRepository<Book, String>, BookRepositoryCustom {
4    public Optional<Book> findByName(String name);
5}
6

这个JUnit单元测试运行成功后,

在MongoDB Compass里成功看到这条插入的记录:

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索