返回 导航

SpringBoot / Cloud

hangge.com

SpringBoot - 整合并操作MongoDB数据库教程3(构建RESTful服务1:基本用法)

作者:hangge | 2019-12-07 08:10
    RESTRepresentational State Transfer)是一种 Web 软件架构风格(它是一种风格,而不是标准),而匹配或兼容这种架构风格的网络服务称为 REST 服务。在 REST 中,资源是由 URI 来指定的,对资源的增删改查操作可以通过 HTTP 协议提供的 GETPOSTPUTDELETE 等方法实现。
    在 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 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 请求即可向数据库添加一条数据:

(2)使用 get 请求则可查询数据(分页查询):
(1)分页查询请求默认每页记录数是 20 条,页数为 0(页码从 0 开始计),查询结果如下图。可以看到返回结果除了有图书信息外,还有如何发起一个分页请求以及当前页面的分页信息。
(2)如果想要修改请求页码和每页记录数,只需要在请求地址中携带上相关参数即可。下面请求表示查询第 2 页数据并且每页记录数为 3
  • http://localhost:8080/books?page=1&size=3
(3)除了分页外还支持排序,下面请求表示在上面寄出上按照 id 倒叙排列:
  • http://localhost:8080/books?page=1&size=3&sort=id,desc
(4)如果想按照 id 查询,只需在 /books 后面追加上 id 即可。比如下面 URL 查询 id 5dc37d0c1fd35936c36f7225 book
  • http://localhost:8080/books/5dc37d0c1fd35936c36f7225
 
(3)使用 put 请求可以实现对数据的修改。对数据修改是通过 id 进行,因此请求路径中要有 id。比如下面请求路径表示修改 id 5dc3811a1fd3593737db235b 的记录。
注意PUT 请求的返回结果就是被修改之后的记录。

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

全部评论(0)

回到顶部