这是基于maven管理的SpringBoot项目的mongodb测试笔记,只测试了最基本的增删改查和一些踩过的坑。

2023-11-07

这是基于maven管理的SpringBoot项目的mongodb测试笔记,只测试了最基本的增删改查和一些踩过的坑。

  • 一.项目的依赖配置
	<parent>
		<!-- 这是springboot使用要使用父项目依赖-->
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-parent</artifactId>
    	<version>2.3.3.RELEASE</version>
	</parent>
	<dependencies>
		<!-- 这是springboot要测试api前端要引入的包-->
    	<dependency>
       	 	<groupId>org.springframework.boot</groupId>
       	 	<artifactId>spring-boot-starter-web</artifactId>
    	</dependency>
		<!-- 这是springboot的mongdb包-->
    	<dependency>
       	 	<groupId>org.springframework.boot</groupId> 
         	<artifactId>spring-boot-starter-data-mongodb</artifactId>
    	</dependency>
			<!-- 这是的对于简化实体类的geter,seter等方法简化开发的依赖-->
    	<dependency>
        	<groupId>org.projectlombok</groupId>
        	<artifactId>lombok</artifactId>
        	<optional>true</optional>
   		 </dependency>
	</dependencies>
  • 二.Mongodb下载安装注意事项

    在windows安装mongodb的你要创建一个在磁盘目录下的data/db文件夹,不过较新的版本自带了这个文件夹,为了统一新老版本最好还是建一个,官网的最新版我下载后在win7上安装不了,下了个低了一两个版本的就行了。下载之后需要使用cmd在你刚才创建的目录再安装。菜鸟教程的mongodb教程里有各个平台的安装教程可以直接百度搜索。
    安装的时候最后一步左下角的安装图形界面不要勾,大概率下不了。
    我下的较新的版本默认登录数据库是没有密码的,可以自行更改,下载安装指定目录后会自带三个数据库,这三个数据你用图形化管理界面Navicat是看不见,不过你依然可以使用use命令进入,use命令有的则会切换数据库,没有的则会创建数据库,而你创建了数据库也是没有显示的,你依然要使用语句创建集合才会才图形管理界面上找到。
    关于集合等概念可以在菜鸟教程上查询mongodb和传统型数据库的概念。

  • 三.目录结构:

在这里插入图片描述

这个demo只实现get请求的增删查改,后面只展示更新功能。
  • 四.Entity实体类

在这里插入图片描述
这个ObjectId是mongodb主键的类型,固定命名为_id,他会根据时间戳、主机唯一标识符、进程标识符(PID)、计数器组成一个12字节的16进制字符串如6086327d4f0d4f2149ed2b1d别问啥12字节有24个,问就是16进制。

  • 五.业务流程

    启动springboot项目,访问相应Controller层,Controller调Servie层接口的实现接口,实现的接口ServiceImpl,ServiceImpl调Dao层,Dao层使用MongoTemplate来实现对数据进行操作

    .在这里插入图片描述

二.
在这里插入图片描述

三.
在这里插入图片描述

四.
在这里插入图片描述

完成这四步就可以进行一个简单GET请求更新操作了,

有人看完肯定会问为啥第二步操作为啥不把id封装到user里去呢,还有User里的id不是ObjectId类型吗?
因为在我是java的Controller的save方法里生成User的ObjectId的
在这里插入图片描述

这个类是导入mongodb给我们的,只要创建就会自动根据上面的规则生成一个ObjectId。

而我在update中如果把实体类User的setId方法用Get请求路径的id值传进去则会重新创建一个新的ObjectId,用新的id再去更新和删除则会找不到,好奇的可以试试然后控制台输出。
下面是成功前后
在这里插入图片描述
在这里插入图片描述
简单demo就测试完了,然而在实际的开发中肯定不是这样的,比如还要引入日志,接受post请求,将Json封装成对象、自定义MongoTemplate等,作者刚入门所以只能先用简单的测试把项目跑通。
希望有大佬能把setId的就会创建一个新的ObjectId的解决方法教教我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这是基于maven管理的SpringBoot项目的mongodb测试笔记,只测试了最基本的增删改查和一些踩过的坑。 的相关文章

随机推荐

  • C语言中的宏定义

    1 简单宏定义 简单的宏定义有如下格式 define指令 简单的宏 define 标识符替换列表 替换列表是一系列的C语言记号 包括标识符 关键字 数 字符常量 字符串字面量 运算符和标点符号 当预处理器遇到一个宏定义时 会做一个 标识符
  • [Android]从零开始的内核编译

    从零开始的内核编译 本教程将基于小米 10S 的内核源码进行实例 其他型号的手机请自行寻找内核源码 具体内容可以参考我的内核编译项目 手机型号查询 1 获取设备 手机 代号 在安卓设备终端 adb shell 上执行 getprop gre
  • 检测之VOC转COCO

    文章目录 1 获取标注文件及label名与ID对应关系 1 1 获取label2id及标注xml路径 2 xml格式转coco 检测系列相关文章参考如下链接 VOC数据的结构介绍及自定义生成 用labelimg自已标注 VOC标准数据的生成
  • Servlet 作业

    一 填空题 1 Servlet 中使用Session 对象的步骤为 调用HttpServletRequest getSession 的得到Session对象 查看Session对象 在会话中保存数据 2 http 全称是 HyperText
  • Python 计算机视觉(二) —— OpenCV 基础

    目录 1 安装配置 2 OpenCV 基础语法 1 读取图像并显示 2 调整显示窗口大小 3 调整图像尺寸大小 4 图像灰度处理 3 几何图形绘制 1 绘制线段 2 绘制矩形 3 绘制圆形 4 绘制椭圆 5 添加文本 总结 1 安装配置 打
  • ssh遇到port 22:No route to host问题

    ssh遇到这个port 22 No route to host的这个问题其实是比较常见的问题 通常是两个思路 检查防火墙状态 检查ssh状态 这两个方面的解决方案非常常见 无非就是查看这两个 防火墙是否关闭和ssh是否正在运行 大家自行百度
  • SpringCloud 使用sentinel

    一 添加依赖
  • 都2023年了,还有必要学SSH框架吗

    在Web开发中 框架是开发效率和代码质量的保障 SSH框架是指结合了Struts2 Spring和Hibernate3三个开源框架所形成的一种框架 那么 在2023年 我们是否仍然需要学习SSH框架呢 本文将进行探讨 分析SSH框架的优缺点
  • 高中信息技术python知识点_高中信息技术《Python语言》模块试卷

    高中信息技术 Python语言 模块试卷 由会员分享 可在线阅读 更多相关 高中信息技术 Python语言 模块试卷 3页珍藏版 请在人人文库网上搜索 1 区县 姓名 座号 密 封 线 高中信息技术Python语言模块试卷本试卷分为五大题
  • 攻防世界Web:Web_php_wrong_nginx_config

    首先进来是一个登录页面 通过御剑扫描 发现了robots txt 打开发现两个php文件 hint php Hack php是跳转到登录页面 抓包看看Hack php 发现了可疑的点Cookie isLogin 0 不妨修改为1 进入控制中
  • Docker 自动启动和容器自动启动

    一 docker 服务启动启动 开启 docker 自启动 systemctl enable docker service 关闭 docker 自启动 systemctl disable docker service 二 docker 容器
  • C++ 线程局部变量thread_local

    本文转自 https blog csdn net aguoxin article details 103968031 Linux中的线程局部存储 一 本章节转自 https blog csdn net cywosp article deta
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记13——BTC匿名性篇2(零知识证明)

    北京大学肖臻老师 区块链技术与应用 公开课笔记 比特币回顾问答篇 对应肖老师视频 click here 全系列笔记请见 click here About Me 点击进入我的Personal Page 匿名性部分第一节 匿名性分析请见 cli
  • UncaughtExceptionHandler异常处理机制

    解释 UncaughtExceptionHandler类是java1 5里新增的 Thread类里面的一个函数式接口类的 类名意思为 未捕获的异常处理 该类的注释接口意思 接口处理器时调用线程突然终止 由于未捕获到异常 当一个线程要终止由于
  • mysql json字段长度_mysql5.7 新增的json字段类型

    一 我们先创建一个表 准备点数据 CREATE TABLE json test id int 11 unsigned NOT NULL AUTO INCREMENT COMMENT ID json json DEFAULT NULL COM
  • java什么场景使用克隆,Java设计模式----原型模式(克隆模式)

    场景 思考一下 克隆技术是怎么样的过程 JavaScript语言中的 继承怎么实现 那里面也有prototype 原型模式 通过new产生一个对象需要繁琐的数据准备或访问权限 则可以使用原型模式 就是java中的克隆技术 以某个对象为原型
  • Qt 搜索框

    一 前言 用户需要输入文本时 可使用QLineEdit控件进行编辑输入 缺点是样式相对单一 在使用百度搜索输入框时 发觉比较人性化 故采用QLineEdt QPushButton通过css样式实现自定义搜索框控件 包含如下功能 1 可设置占
  • 用 ChatGPT 解锁生成式游戏#StoryGames.AI

    生成式游戏 AI 是一种基于人工智能技术 自动生成游戏故事情节 关卡 角色等内容的游戏 AI ChatGPT 的发展生成式游戏 AI 产生了重要影响 为游戏开发者提供了更加灵活 自由的创作方式 每个人都有机会开发自己的专属游戏 StoryG
  • 调试最长的一帧(第16天)

    终于到达绘制了 先看总体流程阶段 然而 从并行堆栈上看 已经有渲染线程开启了 跟着电子书走 先是介绍 抄一抄 加深印象 osg的场景渲染过程可以简单地分为三个阶段 用户APP阶段 更新用户数据 负责场景对象的运动和管理等 筛选cull阶段
  • 这是基于maven管理的SpringBoot项目的mongodb测试笔记,只测试了最基本的增删改查和一些踩过的坑。

    这是基于maven管理的SpringBoot项目的mongodb测试笔记 只测试了最基本的增删改查和一些踩过的坑 一 项目的依赖配置