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

本文我们更进一步,通过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 recordif(repository.findById(id)==null)return false;// do database deleterepository.deleteById(id);return true;}

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

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

MongoDB最简单的入门教程之五-通过Restful API访问MongoDB相关推荐

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

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

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

    前两篇教程我们介绍了如何搭建MongoDB的本地环境. 这篇教程我们会介绍如何使用Java代码来连接MongoDB. 如果您是基于Maven进行依赖管理的Java项目,只需要在您的pom.xml里加入 ...

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

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

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

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

  5. 转载:【OpenCV入门教程之五】 分离颜色通道多通道图像混合

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

  6. 【OpenCV入门教程之五】 分离颜色通道多通道图像混合(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

  7. C++ 高性能计算之多线程简单基础入门教程

    C/C++ 高性能计算之多线程简单基础入门教程 比起别人的盲目罗列函数接口,鹦鹉学舌式的解释每一个输入参数和输出参数,一味求全而无重点,我的文章更侧重于入门知识的讲解,宁缺毋滥,只有一些最简单的入门用 ...

  8. ecshop二次开发的简单快速入门教程

    ecshop二次开发的简单快速入门教程,具体请下载文档 ecshop_dwt_lbi_详解.rar (106 KB) 下载次数: 9 转载于:https://my.oschina.net/u/3360 ...

  9. python 分类_简单机器学习入门教程:用Python解决简单的水果分类问题

    在这篇机器学习入门教程中,我们将使用Python中最流行的机器学习工具scikit- learn,在Python中实现几种机器学习算法.使用简单的数据集来训练分类器区分不同类型的水果. 这篇文章的目的 ...

最新文章

  1. c# html文本编辑器,C#实现简单文本编辑器
  2. MySQL 日期时间类型怎么选?千万不要乱用!
  3. java的国际化怎么用_Java有关国际化使用实例
  4. spring boot 打war包部署,打jar包
  5. 显示visual studio试用版序列号输入框小程序_Visual Studio 2008试用版的评估期已经结束 的解决方法...
  6. try catch无法捕获 StackOverflowException
  7. HttpUtil工具类
  8. Tomcat无法成功启动startup.bat解决方法(闪退)
  9. mimics软件怎么恢复原来默认的窗口设置
  10. Charles 抓包工具绿化过程记录
  11. 对集合对象进行排序:根据对象集合其中一属性进行排序
  12. 下载网络图片并上传微信公众平台素材库
  13. 如何强制App横屏或者竖屏显示应用
  14. 文献综述 android,《基于android的手机天气预报系统》的文献综述-文献综述
  15. 做一套给三星手机用的导航栏图标(伪装Windows10移动版)
  16. 华为前缀列表ip ip-prefix
  17. 江苏省谷歌地球高程DEM等高线下载
  18. HTML5初学----基础代码案例汇总
  19. 忍不住推荐给你的4个导航网站
  20. 回忆 | 奔跑在昔日

热门文章

  1. 文献学习(part15)--Subspace Clustering via Good Neighbors
  2. HTML基础(part8)--HTML5
  3. 小白的算法初识课堂(part2)--选择排序
  4. 《计量经济学》学习笔记之放宽基本假定的模型
  5. vba 修改下拉列表_Excel隐藏的超实用技能,涉及VBA技巧,建议【收藏】
  6. SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型试读版
  7. 介绍一个修改 Visual Studio Code 侧边框颜色的扩展 Peacock
  8. Spring 基于 Java 的配置
  9. how does SAP ui5 know the phone, tablet type, os type
  10. SAP OData:How is note $expand being implemented