SpringBoot操作MongoDB实现增删改查

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: SpringBoot操作MongoDB实现增删改查本篇博客主讲如何使用SpringBoot操作MongoDB。SpringBoot操作MongoDB实现增删改查(1)pom.xml引入依赖 <groupId>org.

SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB。

SpringBoot操作MongoDB实现增删改查

(1)pom.xml引入依赖

        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

(2)创建application.yml

spring:
data:

mongodb:
  host: 192.168.72.129
  database: studentdb

(3)创建实体类
创建包com.changan.mongodb,包下建包pojo 用于存放实体类,创建实体类

package com.changan.mongdb.pojo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;

@Document(collection = "student")
public class Student implements Serializable {

@Id
private Long id;

private String name;

private String sex;

private String age;

private String introduce;

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

public String getIntroduce() {
    return introduce;
}

public void setIntroduce(String introduce) {
    this.introduce = introduce;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Long getId() {
    return id;
}

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

}

(4)创建数据访问接口
com.changan.mongodb包下创建dao包,包下创建接口

package com.changan.mongdb.dao;

import com.changan.mongdb.pojo.Student;

import java.util.List;
import java.util.Map;

public interface StudentDao {

void save(Student student);

void update(Student student);

List<Student> findAll();

void delete(Integer id);

}

(5)创建业务逻辑类
com.changan.mongodb包下创建impl包,包下创建类

package com.changan.mongdb.dao.impl;

import com.changan.mongdb.dao.StudentDao;
import com.changan.mongdb.pojo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.LookupOperation;
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.Component;

import java.util.List;

@Component
public class StudentDaoImpl implements StudentDao {

@Autowired
private MongoTemplate mongoTemplate;

/**
 * 新增信息
 * @param student
 */
@Override
public void save(Student student) {
    mongoTemplate.save(student);
}

/**
 * 修改信息
 * @param student
 */
@Override
public void update(Student student) {
    //修改的条件
    Query query = new Query(Criteria.where("id").is(student.getId()));

    //修改的内容
    Update update = new Update();
    update.set("name",student.getName());

    mongoTemplate.updateFirst(query,update,Student.class);
}

/**
 * 查询所有信息
 * @return
 */
@Override
public List<Student> findAll() {
    return mongoTemplate.findAll(Student.class);
}

/**
 * 根据id查询所有信息
 * @param id
 */
@Override
public void delete(Integer id) {
    Student byId = mongoTemplate.findById(1,Student.class);
    mongoTemplate.remove(byId);
}

}

(6)创建测试类

package com.changan.mongdb;

import com.changan.mongdb.dao.StudentDao;
import com.changan.mongdb.pojo.Student;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Map;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MongdbApplicationTests {

@Autowired
private StudentDao studentDao;

/**
 * 查询所有信息
 */
@Test
public void findAll() {
    List<Student> all = studentDao.findAll();
    System.out.println(all.size());
}

/**
 * 新增信息
 */
@Test
public void save() {
    Student student = new Student();
    student.setId(6l);
    student.setName("宋人头");
    studentDao.save(student);
}

/**
 * 修改信息
 */
@Test
public void update() {
    Student student = new Student();
    student.setId(2l);
    student.setName("吴很帅");
    studentDao.update(student);
}

/**
 * 删除信息
 */
@Test
public void delete() {
    studentDao.delete(3);
}

}


作者:丢了微笑该如何释怀
来源:CSDN
原文:https://blog.csdn.net/weixin_42236165/article/details/91884029
版权声明:本文为博主原创文章,转载请附上博文链接!

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
48 0
Springboot WebFlux项目结合mongodb进行crud
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些高级用法
本文探讨了在Spring Boot项目中使用MongoDB的多种方式及其高级用法。MongoDB作为一种NoSQL数据库,在某些场景下相较于SQL数据库有着独特的优势。文中详细介绍了在Spring Boot中使用MongoDB的三种主要方式:直接使用官方SDK、使用Spring JPA以及使用MongoTemplate,并对比分析了它们之间的差异。此外,文章深入讲解了Spring Data MongoDB提供的各种注解(如@Id, @Document, @Field等)以简化操作流程,并探讨了MongoTemplate监听器的应用,如设置主键值、记录日志等。
174 2
|
1月前
|
SQL NoSQL Java
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
本文介绍了如何在Spring Boot中操作NoSQL数据库MongoDB,包括在MongoDB官网创建服务器、配置Spring Boot项目、创建实体类、仓库类、服务类和控制器类,以及如何进行测试。
20 1
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
|
2月前
|
SQL JSON Java
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
本文为Spring Boot增删改查接口的小白入门教程,介绍了项目的构建、配置YML文件、代码编写(包括实体类、Mapper接口、Mapper.xml、Service和Controller)以及使用Postman进行接口测试的方法。同时提供了SQL代码和完整代码的下载链接。
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
|
1月前
|
前端开发 Java 数据库
springBoot:template engine&自定义一个mvc&后端给前端传数据&增删改查 (三)
本文介绍了如何自定义一个 MVC 框架,包括后端向前端传递数据、前后端代理配置、实现增删改查功能以及分页查询。详细展示了代码示例,从配置文件到控制器、服务层和数据访问层的实现,帮助开发者快速理解和应用。
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些骚操作用法
MongoDB作为一种NoSQL数据库,在不需要传统SQL数据库的表格结构的情况下,提供了灵活的数据存储方案。在Spring Boot中可以通过官方SDK、Spring JPA或MongoTemplate等方式集成MongoDB。文章重点介绍了Spring Data MongoDB提供的注解功能,例如`@Id`、`@Document`和`@Field`等,这些注解简化了Java对象到MongoDB文档的映射。此外,文中还讨论了MongoTemplate监听器的使用,包括设置主键值和日志记录等高级特性。
239 0
SpringBoot中MongoDB的那些骚操作用法
|
4月前
|
SQL NoSQL API
MongoDB 增删改查 常用sql总结
MongoDB 增删改查 常用sql总结
197 1
|
4月前
|
DataWorks NoSQL fastjson
DataWorks操作报错合集之DataX进行MongoDB全量迁移的过程中,DataX的MongoDB Reader插件在初始化阶段找不到Fastjson 2.x版本的类库,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
353 0
|
3月前
|
NoSQL Java MongoDB
MongoDB 读写分离——SpringBoot读写分离
MongoDB 读写分离——SpringBoot读写分离
125 0
下一篇
无影云桌面