Java springboot Mongodb增删改查代码实例

我来为你详细讲解“Java SpringBoot MongoDB增删改查代码实例”的完整攻略。

简介

SpringBoot是一个基于Spring Framework的全栈( Full-stack)框架,可以快速构建Web应用程序。它提供了一系列的依赖管理和编码规范,使得我们可以专注于业务逻辑而不是繁琐的配置。MongoDB是一种文档数据库,支持各种数据类型和查询方式。

本攻略旨在介绍如何使用Java SpringBoot框架和MongoDB进行增删改查。

环境搭建

在开始本攻略之前,我们需要进行一些准备工作。

  • 安装 JDK 8 或以上版本。
  • 安装 MongoDB 数据库服务,详见MongoDB官网
  • 安装 MongoDB可视化管理工具 MongoDB Compass。
  • 新建Maven项目并导入MongoDB和SpringBoot相关依赖。

在项目的pom.xml文件中添加如下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.1.1</version>
</dependency>

实现增删改查

定义实体类

在开始实现增删改查之前,我们需要定义一个数据模型,即Java实体类。本文提供的示例代码中,我们定义一个名为Employee的实体类。

@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "Employee")
public class Employee {
    @Id
    private String id;
    private String firstName;
    private String lastName;
    private Long salary;
}

数据库连接

接下来我们需要建立与MongoDB的连接。在SpringBoot中,我们可以通过在application.properties文件中配置数据库连接信息来实现连接。

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=test_database

增加文档

下面是向MongoDB中添加一个文档的示例代码:

@Autowired
private MongoTemplate mongoTemplate;

public Employee addEmployee(Employee employee) {
    return mongoTemplate.save(employee);
}

查询文档

下面是从MongoDB中查询文档的示例代码:

@Autowired
private MongoTemplate mongoTemplate;

public List<Employee> findAllEmployees() {
    return mongoTemplate.findAll(Employee.class);
}

public Employee findEmployeeById(String id) {
    Query query = new Query(Criteria.where("id").is(id));
    return mongoTemplate.findOne(query, Employee.class);
}

public List<Employee> findEmployeeByLastName(String lastName) {
    Query query = new Query(Criteria.where("lastName").is(lastName));
    return mongoTemplate.find(query, Employee.class);
}

更新文档

下面是更新MongoDB中的文档的示例代码:

@Autowired
private MongoTemplate mongoTemplate;

public long updateEmployee(Employee employee) {
    Query query = new Query(Criteria.where("id").is(employee.getId()));

    Update update = new Update();
    update.set("firstName", employee.getFirstName());
    update.set("lastName", employee.getLastName());
    update.set("salary", employee.getSalary());

    UpdateResult result = mongoTemplate.updateFirst(query, update, Employee.class);

    if (result != null) {
        return result.getModifiedCount();
    } else {
        return 0L;
    }
}

删除文档

最后,我们需要删除MongoDB中的一个文档。下面是一个示例代码:

@Autowired
private MongoTemplate mongoTemplate;

public void deleteEmployeeById(String id) {
    Query query = new Query(Criteria.where("id").is(id));
    mongoTemplate.remove(query, Employee.class);
}

示例

下面是根据上述代码实现的两个示例。

示例1

在这个示例中,我们以RESTful API方式将一个员工进行添加、查询、更新和删除操作。

在EmployeeController.java中实现如下代码:

@RestController
@RequestMapping("/employee")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    // Get all employees
    @GetMapping("/getAllEmployees")
    public List<Employee> getAllEmployees() {
        return employeeService.findAllEmployees();
    }

    // Get an employee by id
    @GetMapping("/getEmployeeById/{id}")
    public Employee getEmployeeById(@PathVariable String id) {
        return employeeService.findEmployeeById(id);
    }

    // Get employees by lastName
    @GetMapping("/getEmployeesByLastName/{lastName}")
    public List<Employee> getEmployeesByLastName(@PathVariable String lastName) {
        return employeeService.findEmployeeByLastName(lastName);
    }

    // Add an employee
    @PostMapping("/addEmployee")
    public Employee addEmployee(@RequestBody Employee employee) {
        return employeeService.addEmployee(employee);
    }

    // Update an employee
    @PutMapping("/updateEmployee")
    public long updateEmployee(@RequestBody Employee employee) {
        return employeeService.updateEmployee(employee);
    }

    // Delete an employee
    @DeleteMapping("/deleteEmployeeById/{id}")
    public void deleteEmployeeById(@PathVariable String id) {
        employeeService.deleteEmployeeById(id);
    }
}

示例2

在这个示例中,我们以MongoTemplate方式进行文档操作,实现将一个员工添加进MongoDB数据库、查询、更新和删除操作。示例代码如下:

@SpringBootApplication
public class MongoDemoApplication {

    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(MongoDemoApplication.class, args);

        EmployeeService employeeService = context.getBean(EmployeeService.class);

        // 添加Employee
        Employee employee = new Employee(null, "Jack", "Smith", 80000L);
        Employee addedEmployee = employeeService.addEmployee(employee);
        System.out.println("Added employee: " + addedEmployee);

        // 根据ID查询Employee
        String addedEmployeeId = addedEmployee.getId();
        Employee foundEmployee = employeeService.findEmployeeById(addedEmployeeId);
        System.out.println("Found employee by ID: " + foundEmployee);

        // 根据lastName查询Employee
        List<Employee> foundEmployeesByLastName = employeeService.findEmployeeByLastName("Smith");
        System.out.println("Found employees by lastName: " + foundEmployeesByLastName);

        // 更新Employee
        Employee updatedEmployee = foundEmployee;
        updatedEmployee.setSalary(90000L);
        long updatedCount = employeeService.updateEmployee(updatedEmployee);
        System.out.println("Updated employee count: " + updatedCount);

        // 删除Employee
        String updatedEmployeeId = updatedEmployee.getId();
        employeeService.deleteEmployeeById(updatedEmployeeId);
        System.out.println("Deleted employee by ID: " + updatedEmployeeId);
    }
}

至此,我们已经实现了Java SpringBoot MongoDB的增删改查。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java springboot Mongodb增删改查代码实例 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Python实现构建一个仪表板的示例代码

    Python实现构建一个仪表板的示例代码可以通过以下步骤实现: 1. 安装必要的库 为了构建一个仪表板,我们需要使用一些Python库。最常用的库是Dash,它是一个基于Flask和ReactJS的Python Web框架。使用Dash,可以轻松地构建数据可视化仪表板。Dash需要配合Plotly和Pandas等其他库一起使用。 !pip install d…

    人工智能概论 2023年5月25日
    00
  • MongoDB中的push操作详解(将文档插入到数组)

    以下是MongoDB中的push操作详解(将文档插入到数组)的完整攻略。 1. push概述 在MongoDB中,push操作用于将文档插入到数组中。它可以用于更新已有的文档,或创建新文档并向其中插入新的数据。 2. push语法 push的语法如下: db.collection.update( <query>, { $push: { <f…

    人工智能概论 2023年5月25日
    00
  • 效率软件

    什么是效率软件? 效率软件是指能够帮助人们提高生产力、工作效率的软件,主要包括工具类、办公类、知识管理类等类型。通过使用效率软件,人们可以更加高效地管理时间、任务和信息,达到事半功倍的效果。 如何选择有效的效率软件? 选择有效的效率软件需要按照自己的需求、工作习惯和个人喜好来选择,同时还需要考虑软件的适用性、易用性、稳定性和安全性等因素。以下是选择效率软件的…

    人工智能概览 2023年5月25日
    00
  • 浅析MongoDB 全文检索

    浅析MongoDB全文检索 在MongoDB中进行全文搜索可以使用它的全文索引。MongoDB中的全文搜索可以对文本字段建立索引,对这些字段进行全文搜索。下面将介绍如何在MongoDB中建立全文索引,并进行全文搜索。 建立全文索引 在MongoDB中建立全文索引可以使用文本索引类型。假设我们有一个名为users集合,其中包含一个description字段,请…

    人工智能概论 2023年5月25日
    00
  • Dockerfile文件详解

    关于”Dockerfile文件详解”的攻略,以下是详细的讲解: 什么是Dockerfile? Dockerfile是用于构建Docker镜像的文本文件,其中包含了一系列的指令和参数,用于从零开始创建一个Docker镜像。Dockerfile是基于一些列指令构建的,这些指令用于指定如何组装容器映像,以及创建容器时需要运行哪些命令。 Dockerfile指令 D…

    人工智能概览 2023年5月25日
    00
  • django 自定义过滤器(filter)处理较为复杂的变量方法

    以下是“django 自定义过滤器(filter)处理较为复杂的变量方法”的完整攻略。 1. 理解django过滤器(filter) 在Django中,过滤器(filter)是用于对变量进行处理的工具,它可以使用管道(pipeline)将一个变量传递给另一个变量,并通过一系列的过滤器处理它们。Django的模板系统提供了一些内置的过滤器,如{{ variab…

    人工智能概论 2023年5月25日
    00
  • java基于mongodb实现分布式锁的示例代码

    基于MongoDB实现分布式锁的原理 基于MongoDB实现分布式锁的原理其实是非常简单的,它主要分为以下几个步骤: 引入MongoDB驱动:首先,我们需要在Java项目中引入MongoDB的Java驱动,官方提供了Java驱动的下载地址,我们可以从这里下载最新的Java驱动。 创建MongoDB实例:然后,我们需要创建一个MongoDB的连接实例,这个实例…

    人工智能概论 2023年5月25日
    00
  • Go-RESTful实现下载功能思路详解

    Go-RESTful实现下载功能思路详解 简介 在Web应用程序中,下载功能通常是必需的功能之一。Go是一种功能强大的编程语言,使用它实现RESTful API来实现下载功能非常高效、方便和可靠。在本文中,我们将深入讨论如何使用Go-RESTful库实现下载功能。 步骤 本文将介绍三个主要步骤来实现下载功能: 定义RESTful路由 打开文件并将其发送到客户…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部