通过前面四篇的学习,我们已经在本地安装了一个MongoDB数据库,并且通过一个简单的Spring boot应用的单元测试,插入了几条记录到MongoDB中,并通过MongoDB Compass查看到了插入的数据。

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

MongoDB最简单的入门教程之二 使用nodejs访问MongoDB

MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据

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

本文我们更进一步,通过Spring Boot构造出Restful API,这样可以直接在浏览器里通过调用Restful API对Spring Boot进行增删查改了。

先看效果,假设我本地MongoDB的数据库里有一张表book,只有一条记录,id为1。

通过浏览器里的这个url根据id读取该记录:http://localhost:8089/bookmanage/read?id=1

记录的创建:

http://localhost:8089/bookmanage/create?id=2&name=Spring&author=Jerry

记录的搜索:http://localhost:8089/bookmanage/search?name=*

记录的删除:删除id为2的记录

http://localhost:8089/bookmanage/delete?id=2

下面是实现的细节。

1. 创建一个新的controller,位于文件夹src/main/java下。

这个controller加上注解@RestController。@RestController注解相当于@ResponseBody和@Controller这两个注解提供的功能的并集。这里有一个知识点就是,如果用注解@RestController定义一个Controller,那么这个Controller里的方法无法返回jsp页面,或者html,因为@ResponseBody注解在起作用,因此即使配置了视图解析器 InternalResourceViewResolver也不会生效,此时返回的内容就是@RestController定义的控制器方法里返回的内容。

2. 以读操作为例,通过注解@GetMapping定义了读操作Restful API的url为bookmanage/read。

@RequestParam定义了url:bookmanage/read后面的参数为id或者name。读操作最终将会使用我们在MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据里介绍的方法,即通过@Autowired注入的BookRepository实例完成对MongoDB的操作。

3. 创建操作的源代码:

@GetMapping("/bookmanage/create")

public Book create(

@RequestParam(value="id", defaultValue="") String id,

@RequestParam(value="name", defaultValue="noname") String name,

@RequestParam(value="author", defaultValue="noauthor") String author

){

     Book book = repository.save(new Book(id,name,author));

     return book;

}

4. 删除操作的源代码:

@GetMapping("/bookmanage/delete")

public boolean delete(

@RequestParam(value="id", defaultValue="") String id

){

    //if no record

     if(repository.findById(id)==null)

           return false;

     // do database delete

     repository.deleteById(id);

    return true;

}

本教程的完整代码在我的github上:

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

MongoDB最简单的入门教程之五-通过Restful API访问MongoDB的更多相关文章

  1. MongoDB最简单的入门教程之二 使用nodejs访问MongoDB

    在前一篇教程 MongoDB最简单的入门教程之一 环境搭建 里,我们已经完成了MongoDB的环境搭建. 在localhost:27017的服务器上,在数据库admin下面创建了一个名为person的 ...

  2. MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据

    前两篇教程我们介绍了如何搭建MongoDB的本地环境: MongoDB最简单的入门教程之一 环境搭建 以及如何用nodejs读取MongoDB里的记录: MongoDB最简单的入门教程之二 使用nod ...

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

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

  4. MongoDB最简单的入门教程之一 环境搭建

    MongoDB是近年来非常流行的一个介于关系数据库和非关系数据库之间的解决方案,特别广泛地应用于国内很多互联网公司,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB支持的数据结构非常松 ...

  5. ASP.NET MVC4 新手入门教程之五 ---5.用控制器访问模型数据

    在本节中,将创建一个新的MoviesController类并编写代码来检索电影数据并将其显示在浏览器中使用一个视图模板. 才走出下一步生成应用程序. 用鼠标右键单击控制器文件夹中并创建一个新的 Mov ...

  6. abp学习(四)——根据入门教程(aspnetMVC Web API进一步学习)

    Introduction With AspNet MVC Web API EntityFramework and AngularJS 地址:https://aspnetboilerplate.com/ ...

  7. React 最简单的入门教程

      一看就懂的ReactJs入门教程(精华版)   现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual D ...

  8. 相比之前其他几个入门的, 推荐: 简单vue2 入门教程

    注意:Vue.js 不支持 IE8 及其以下 IE 版本.       具体可以看下  http://www.runoob.com/vue2/vue-tutorial.html 以下是学习过程 Vue ...

  9. Spring Boot 2.x基础教程:构建RESTful API与单元测试

    首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...

随机推荐

  1. POJ1474:Video Surveillance(求多边形的核)(占位)

    A friend of yours has taken the job of security officer at the Star-Buy Company, a famous depart- me ...

  2. iOS成员变量、实例变量、属性变量三者的联系与区别

    一.类Class中的属性property 在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是 ...

  3. Linux Bash 提示符的一些骚年操作

    当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符: 百牛信息技术bainiu.ltd整理发布于博客园[user@$host ~]$1[use ...

  4. Linux 系统开机启动项清理

    一般情况下,常规用途的 Linux 发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,例如蓝牙bluetooth.Avahi. 调制解调管理器ModemManager.ppp-dn ...

  5. Java Container ***

    Java Container ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存 ...

  6. JS两个数组比较,删除重复值巧妙方法

    //方法一 var arr1 = [1,2,3,4,5,6,7,8]; //数组A var arr2 = [1,2,3,11,12,13,14];//数组B var temp = []; //临时数组 ...

  7. Socket教程

    Socket网络编程学习笔记(6):使用线程池提高性能    Socket网络编程学习笔记(5):发送和接收实体类数据   Socket网络编程学习笔记(4):TCP消息边界处理   Socket网络 ...

  8. CocoaPods(第三方类库管理工具)

    iOS安装CocoaPods详细过程  一.简介 什么是CocoaPods CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods” ...

  9. hdoj5805【模拟】

    BestCoder Round #86 B NanoApe Loves Sequence 题意: 中文题,题意就算了 思路: 弱的思路- 找一个最大,和第二大,第三大,标记下标(前面那个) ①:如果是 ...

  10. IT兄弟连 JavaWeb教程 请求重定向案例

    Check2Servlet类与Output2Servlet类之间为请求转发关系.在web.xml文件中,为Check2Servlet映射的URL为"/check2",为Output ...