Spring Boot整合MongoDB实现增删改查

SpringBoot整合MongoDB实现增删改查、复合查询 1、向pom.xml中添加依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2、编辑app... 阅读详情

MongoDB这两年来是本人一直使用较多的,之前的使用大多通过封装的工具类对数据库进行操作,虽然也算稳定,但有了Spring Boot之前的工具类直接加到SpringBoot里就没那么好使了,因此查阅资料后自己小试牛刀写了个增删改查,觉得也还不错,所以分享给大家看看

1 pom和主配置文件,为了方便大家复制粘贴贴个完整的

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.debug</groupId>
  <artifactId>usemongo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>usemongo</name>
  <url>http://maven.apache.org</url>

   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>
  
  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.4.5.RELEASE</version>
  </parent>
  
  <dependencies>
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-mongodb</artifactId>
	</dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
           <scope>true</scope>
   </dependency>
    <dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>fastjson</artifactId>
	    <version>1.2.38</version>
   </dependency>
   <dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
  </dependency>
   
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
  <build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<!--fork :  如果没有该项配置,devtools不会起作用,即应用不会restart -->
				<fork>true</fork>
			</configuration>
		</plugin>
	</plugins>
 </build>
</project>
有几个配置大家根据喜好选择例如freemarker等,不要可根据需要去掉

spring.data.mongodb.database=test
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.username=test
spring.data.mongodb.password=654321
配置文件只写了MongoDB的一些简单配置,只作为参考,不一定要这样写

2 实体类/pojo

package com.debug.pojo;

import org.springframework.data.annotation.Id;

public class Order {
	
	@Id
	private int id;
	private String orderNo;
	private String nickName;
	private double totalPrice;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	public double getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(double totalPrice) {
		this.totalPrice = totalPrice;
	}

}
第一个属性id可要可不要,MongoDB建议使用自带的_id作为主键,这样不会重复;另外如果实体和表名不一致可以使用
@Document注解指定,使用方法如下:

@Document(collection="orderInfo")

如果属性和数据库字段不同可以使用@Field("字段名")  指定

3  dao或repository(原理和Spring data jpa相似)

package com.debug.repository;

import java.util.regex.Pattern;

import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.repository.MongoRepository;

import com.debug.pojo.Order;

public interface OrderRepository extends MongoRepository<Order, Integer>{
   Order getByOrderNo(String orderNo);
   public Order getByOrderNoLike(String orderNo);
}
Spring data jpa的那一套查询规则,在MongoDB仍然适用

4 service层

package com.debug.service;

import com.debug.pojo.Order;

public interface OrderService {
	public Order getByOrderNo(String orderNo);
	public Order getByOrderNoLike(String orderNo);
	public void saveOrder(Order order);
	public void removeOrderByOrderNo(String orderNo);
	public void updateOrder(Order order);
}
package com.debug.service.impl;

import javax.annotation.Resource;
import javax.annotation.Resources;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;

import com.debug.pojo.Order;
import com.debug.repository.OrderRepository;
import com.debug.service.OrderService;

@Service
public class OrderServiceImpl implements OrderService{
	
	@Resource
	private MongoTemplate mongoTemplate;

	@Resource
	private OrderRepository orderRepository;
	
	public Order getByOrderNo(String orderNo) {
		
		return orderRepository.getByOrderNo(orderNo);
	}

	
	public void saveOrder(Order order) {
		orderRepository.save(order);
		
	}
	
    public Order getByOrderNoLike(String orderNo) {
		
		return orderRepository.getByOrderNoLike(orderNo);
	}
    
    public void removeOrderByOrderNo(String orderNo) {
    	Query q=new Query(new Criteria("orderNo").is(orderNo));
    	mongoTemplate.remove(q,Order.class);
    }
    
    public void updateOrder(Order order) {
    	Query q=new Query(new Criteria("orderNo").is(order.getOrderNo()));
    	Update update=new Update().set("nickName", order.getNickName());
    	mongoTemplate.updateMulti(q, update, Order.class);
    }

}
这里使用了MongoDBTempalte作删除和修改操作,查询使用的是spring data mongodb

5  controller的代码

package com.debug.controller;

import java.util.UUID;
import java.util.regex.Pattern;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.debug.pojo.Order;
import com.debug.repository.OrderRepository;
import com.debug.service.OrderService;

@RestController
public class OrderController {
	
	@Resource
	private OrderService orderService;

	@RequestMapping("/saveOrder")
	@ResponseBody
	public String saveOrder() {
		
		Order order=new Order();
		order.setId(2);
		order.setNickName("潘玮柏");
		order.setOrderNo("X797468");
		order.setTotalPrice(4500.00);
		
		orderService.saveOrder(order);
		
		return "OK";
	}
	
	@RequestMapping("/getOrderByOrderNo")
	@ResponseBody
	public Order getOrderByOrderNo() {
		Order order=orderService.getByOrderNo("X797466");
		return order;
	}
	
	@RequestMapping("/getOrderByOrderNoLike")
	@ResponseBody
	public Order getOrderByOrderNoLike() {
		//String cond="X797";
		//Pattern pattern=Pattern.compile("^.*"++".*$");            
		Order order=orderService.getByOrderNoLike("X797");
		return order;
	}
	
	@RequestMapping("/removeOrderByOrderNo")
	@ResponseBody
	public String removeOrderByOrderNo() {         
		orderService.removeOrderByOrderNo("X797468");
		return "OK";
	}
	
	@RequestMapping("/updateOrder")
	@ResponseBody
	public String updateOrder() {    
		Order order=new Order();
		order.setNickName("Justin Timberlake");
		order.setOrderNo("X797467");
		orderService.updateOrder(order);
		return "OK";
	}
}
OK全部搞定,收工大笑

springboot整合MongoDB实现增删改查 | Spring Boot 30 一、建一个maven工程 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach 阅读详情

相关推荐

AI图像去噪实战:5种最新深度学习模型在超声图像处理中的效果对比(附代码)

本文对比了2022至2024年间五种前沿深度学习模型在超声图像去噪领域的实战效果,包括FDDL-Net、MG-CNFNet、Dual-TranSpeckle、可控去噪模型及Wave-Mamba。文章深入剖析了各模型的核心创新与架构,并提供了可运行的代码片段,旨在帮助医学影像算法工程师根据不同的性能、速度与临床需求,选择最合适的AI图像去噪解决方案。

1a2s3d4f5g的博客 915

springboot整合MongoDB进行增删改查(详细)

mongodb

weixin_38568503的博客 2484

Jenkins Job DSL:用代码管理CI/CD配置的实践指南

Jenkins 是持续集成(CI)领域的经典开源平台,其核心价值在于自动化构建与交付流程。然而传统 UI 配置方式导致配置不可版本化、难以复现、审计困难,严重制约团队规模化协作效率。Job DSL 作为一种声明式配置即代码(IaC)方案,通过 Groovy 脚本驱动 Jenkins 内部 API,实现 Job、View、Folder 等资源的程序化创建与维护,天然支持 Git 版本控制、权限审计与环境一致性保障。它不替代 Pipeline,而是与其协同构成‘流程定义’与‘基础设施定义’双轨体系,显著提升 C

weixin_33744141的博客 518

SpringBoot集成Mongodb实现增删改查操作

面向文档:MongoDB存储的是BSON格式的数据,这是一种类似JSON的二进制格式,可以存储复杂的数据结构,如数组和嵌套文档。支持多种编程语言:MongoDB提供了多种编程语言的驱动程序和库,如Java、Python、C#等,方便开发者进行集成和使用。高可用性:MongoDB支持自动故障转移和数据冗余,可以在主节点故障时自动切换到备用节点,确保数据的持久性和一致性。分布式:MongoDB支持水平扩展,可以通过分片技术将数据分布在多个服务器上,实现高可用性和负载均衡。2.实现增删改查mongdb操作。

大道至简,悟在天成。 1221

合金理论自动化工具包(Alloy-Theoretic Automated Toolkit:ATAT)的安装

合金理论自动化工具包(ATAT)是一个通用名称,指的是合金理论工具的集合,它包含了不同的代码工具,具体如下: 1)根据第一性原理(映射和映射)构造集群扩展的代码。簇展开是一种非常紧凑和有效的表达式,给出取代合金的能量作为其构型的函数(即原子的类型位于晶格的哪个位置)。 2)为了计算合金的热力学性质,从聚类展开开始,对晶格模型进行蒙特卡洛模拟(emc2和memc2)的代码。 3)执行晶格动力学计算的代码(fitfc, fitsvsl, svsl) 4)使用简单的物理或半经验模型计算电子和磁自由能贡献

qq_33400046的博客 1万+

RKNN3588——YOLOv8的PT模型转RKNN模型

1. 首先克隆rknn修改后的ultralytics版本项目到本地主要是修改了源码的ultralytics/nn/modules/head.py和ultralytics/engine/exporter.py两个文件。2. 使用修改后的ultralytics对pt模型进行模型转换,此处的format=rknn代表支持rknn后续的转换,而不是用onnx,一定要注意!!!

张飞飞的博客 7169

SpringBoot 整合 MongoDB 实现数据的增删改查!

在实际的业务场景中,可能还需要用到聚合函数等高级查询,大家如果有这种需求,可以访问如下地址获取更加详细的 api 文档介绍:MongoDB 文档查询 api 介绍。索引在所有的数据库中,暂居的位置非常重要,例如当你检索一张上百万的数据表的时候,如果没走索引,查询效率会极其缓慢,对于 MongoDB 来说,同样如此。: 文档是 MongoDB 中最基本的数据单元,由键值对组成,类似于 JSON 格式,可以存储不同字段,字段的值可以包括其他文档、数组和文档数组。

qq_42003636的博客 2635

uniapp ios原生插件开发 (framework,cocoapods)

已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插件需要引入一些三方库时,操作起来就不是那么方便。 而使用Cocoapods则可以很方便的引入三方库。 接下来,本文探索使用Cocoapods的方式来进行UniApp插件开发。

Rey的技术博客 9823

SpringBoot整合MongoDB增删改查

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

qq_39594419的博客 1511

31、自然语言生成中的流畅度评估

本博客探讨了自然语言生成(NLG)中流畅度评估的重要性和方法。文章详细介绍了流畅度的定义及其影响因素,包括句法结构、词汇选择、语义一致性和段落组织。同时,讨论了自动评估和人工评估两种主要方法,并以机器翻译、自动摘要和对话系统为例分析了流畅度评估的应用场景。最后,文章提出了提升流畅度的技术策略以及未来研究方向,为相关领域的研究者和开发者提供了有价值的参考。

h9j8k7l6m5n的博客 273

linux系统下XDMA驱动的安装与测试问题总结

先看两个常见的问题。一个是驱动安装问题,一个是驱动测试错误;error 512 能识别PCIE的设备,但是The kernel modle installed correctly, but no devices were recognized.

whm128的博客 3800

个人学习系列 - Spring Boot 整合 MongoDB 实现数据增删改查

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB安装 因为我是简单整合一下,所以是将MongoDB安装到windows中。 1. 官网下载安装包 2. 直接傻瓜式安装 2.1 选完整安装,自定义安装大佬随意。 2.2 地址和安装方式选择 2.3 可视化工具选择 2.4 安装完毕 3. 上手写代码 3.1 先用Navicat连接上MongoDB 连接上发现什么都没有,不用管,直接撸代码。 3.2 新建Spring Bo.

xiuaiba的博客 241

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SpringBoot之整合MongoDB实现增删改查操作

一、创建项目 选用gradle做项目自动化构建工具 添加lombok,web,mongodb的依赖

qianye的博客 8584

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

增删改查功能怎么实现_SpringBoot整合MongoDB实现增删改查(完整案例)

自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整的案例。一、环境配置对于环境配置我是用了一张表来展示,版本之间差异不大,你可以基于其他版本进行测试。二、代码整合我们在这里举的例子是对用户类user的增删改查操作。现在我们先看一下现在的项目结构:下面...

weixin_39947306的博客 289

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

springboot+mongodb初体验

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

ldcaws的专栏 1329

MongoDB 整合SpringBoot

定义文档(文档相当于MYSQL 的行)

weiming的博客 417

SpringBoot整合MongoDB

SpringBoot整合MongoDB

wzc3614的博客 426

Spring Boot WebFlux-03——WebFlux 整合 MongoDB

第03课:WebFlux 整合 MongoDB 前言 上一课的内容讲解了用 Map 数据结构内存式存储了数据,这样数据就不会持久化,本文我们用 MongoDB 来实现 WebFlux 对数据源的操作。 什么是 MongoDB?详见官网。 MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个...

why191314的博客 430

spring boot集成mongodb的增删改查

添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> properties配置 spring.data.mongodb.host=127.0.0.1 spring.data.mongodb.por

码农研习社 851

Spring boot 整合 mongoDB

1.导包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dep...

卟♪恋 273

springboot整合mongodb实现简单的增删查改功能

首先我查看下mongodb默认的数据库列表,打开mongodb的安装目录执行mongo.exe 然后执行命令show dbs出现如下图所示 本次学习我们使用test数据库,test数据库有数据时才会显示test 下面我们直接展示项目中的代码以及相关配置 项目目录 pom.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;...

w651263072的博客 918

SpringBoot实现MongoDB增删改查(mongoTemplate实现)

1.首先创建项目,目录如下: 2.pom.xml引入mongodb依赖,如下所示: <!-- mongodb依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-...

排长性感的小屁屁 806

【Spring Boot】Spring Boot整合MongoDB基本使用

MongoDB 下载安装与启动 MongoDB下载地址 注意:win7最高适用MongoDB 4.2版本 下载压缩文件,在文件夹中新建data\db文件夹用来存储数据 启动服务器 。在bin目录启动cmd 输入mongod --dbpath=…\data\db 启动客户端 。 在bin目录启动cmd 输入mongo MongoDB基础操作 db.集合名称.insert/save/insertOne(文档) //添加 db.集合名称.update({条件},{操作种类:{文档}}) db.集合名称.re

weixin_45463540的博客 586
上一篇: Kotlin整合Spring Boot实现数据库增删改查(spring data jpa版)
下一篇: Spring Boot整合shiro
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值