SpringBoot - 整合并操作MongoDB数据库教程3(构建RESTful服务1:基本用法)
REST(Representational State Transfer)是一种 Web 软件架构风格(它是一种风格,而不是标准),而匹配或兼容这种架构风格的网络服务称为 REST 服务。在 REST 中,资源是由 URI 来指定的,对资源的增删改查操作可以通过 HTTP 协议提供的 GET、POST、PUT、DELETE 等方法实现。
在 Spring Boot 中,使用 Spring Data MongoDB 和 Spring Data Rest 可以快速开发出一个 RESTful 应用。下面通过样例进行演示。
(2)接着在 application.properties 中配置 MongoDB 的连接信息:
(1)发起一个 post 请求即可向数据库添加一条数据:
(2)使用 get 请求则可查询数据(分页查询):
在 Spring Boot 中,使用 Spring Data MongoDB 和 Spring Data Rest 可以快速开发出一个 RESTful 应用。下面通过样例进行演示。
一、基本用法
1,安装配置
(1)首先编辑 pom.xml 文件,添加相关依赖:
spring-boot-starter-data-mongodb:提供对 Spring Data MongoDB 的支持
spring-boot-starter-data-rest:提供对 Spring Data Rest 的支持
spring-boot-starter-data-rest:提供对 Spring Data Rest 的支持
<!-- Spring Data MongoDB 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <!-- Spring Data Rest 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency>
(2)接着在 application.properties 中配置 MongoDB 的连接信息:
# 验证登录信息的库
spring.data.mongodb.authentication-database=admin
# 要连接的库
spring.data.mongodb.database=test
# 连接地址和认证信息
spring.data.mongodb.host=192.168.60.133
spring.data.mongodb.port=24017
spring.data.mongodb.username=root
spring.data.mongodb.password=123
2,创建实体类
首先我们创建 Book 实体类:注意:@Id 表示主键,不可重复,自带索引。如果自己不设置 @Id 主键,mongo 会自动生成一个唯一主键,并且插入时效率远高于自己设置主键。
@Setter @Getter @NoArgsConstructor public class Book { @Id private String id; private String name; private String author; }
3,创建数据库访问层
接着创建 BookDao 接口,继承 MongoRepository,代码如下:
BookDao 目前里面没有写任何代码是因为 MongoRepository 默认已经提供了一些基本的增删改查、分页查询等操作方法。
public interface BookDao extends MongoRepository<Book, String> { }
4,增删改查测试
经过上面几步,一个 RESTful 服务就构建成功了(虽然我们都没写什么)。RESTful 服务构建成功后,默认的请求路径就是实体类名小写再加上后缀。比如这里就是:
- http://localhost:8080/books
(1)发起一个 post 请求即可向数据库添加一条数据:

(1)分页查询请求默认每页记录数是 20 条,页数为 0(页码从 0 开始计),查询结果如下图。可以看到返回结果除了有图书信息外,还有如何发起一个分页请求以及当前页面的分页信息。
(2)如果想要修改请求页码和每页记录数,只需要在请求地址中携带上相关参数即可。下面请求表示查询第 2 页数据并且每页记录数为 3:
(2)如果想要修改请求页码和每页记录数,只需要在请求地址中携带上相关参数即可。下面请求表示查询第 2 页数据并且每页记录数为 3:
- http://localhost:8080/books?page=1&size=3
- http://localhost:8080/books?page=1&size=3&sort=id,desc
- http://localhost:8080/books/5dc37d0c1fd35936c36f7225

(3)使用 put 请求可以实现对数据的修改。对数据修改是通过 id 进行,因此请求路径中要有 id。比如下面请求路径表示修改 id 为 5dc3811a1fd3593737db235b 的记录。

(4)发送 delete 请求可以实现对数据的删除操作。例如下面删除 id 为 5dc3811a1fd3593737db235b 的记录:
注意:PUT 请求的返回结果就是被修改之后的记录。

(4)发送 delete 请求可以实现对数据的删除操作。例如下面删除 id 为 5dc3811a1fd3593737db235b 的记录:
注意:DELETE 请求没有返回值。
