目录

一、引言

二、Java Spring 框架简介

三、开发环境搭建

1. 打开 IntelliJ IDEA 并创建新项目

2. 选择 Spring Boot 项目模板

3. 配置项目基本信息

4. 选择依赖项

5. 生成项目

 6. 生成项目

四、实现增删改查操作

1.示例代码

2.完整示例代码

五、使用 Postman 测试

六、总结


一、引言

对于初学者来说,通过简单的示例代码来理解和实践增删改查(CRUD)操作是学习 Spring 框架的一个快速且有效的方法。本文将通过一系列基本的示例代码,展示如何在 Spring 中实现 CRUD 操作,帮助您快速入门。

二、Java Spring 框架简介

Spring 框架是一个开源的 Java 平台,它提供了全面的基础设施支持,帮助开发者更容易地创建 Java 应用程序。Spring 的核心特性是控制反转(IoC)和依赖注入(DI),这些特性有助于降低代码耦合度,提高代码的可维护性和可测试性。

三、开发环境搭建

1. 打开 IntelliJ IDEA 并创建新项目

  • 启动 IntelliJ IDEA,选择 “Create New Project(新建—项目)” 选项。

2. 选择 Spring Boot 项目模板

  • 在新建项目界面,选择 “Spring Boot” 作为项目模板。Spring Boot 是一个基于 Spring 框架的开源 Java 基础框架,它简化了基于 Spring 的应用开发,提供了快速开发、部署、运行 Spring 应用的一整套基础设施。

3. 配置项目基本信息

  • 名称:填写项目名称,例如 Spring_example。这是项目的名称,也是最终生成的项目文件夹名称。

  • 位置:选择项目在本地的存储路径。这是项目文件在您的计算机上存储的位置。

  • 语言:选择项目使用的语言,例如 Java。Java 是 Spring Boot 支持的主要编程语言之一。

  • 类型:选择构建工具,例如 Maven。Maven 是一个项目管理和理解工具,它使用一个名为 POM(Project Object Model)的 XML 文件来描述项目的构建过程、依赖关系等。选择 Maven 可以让您更方便地管理项目的依赖和构建过程。

  • :填写项目的组 ID,例如 com.example。这是项目的组织唯一标识符,通常使用反向域名格式。

  • 工件:填写项目的工件 ID,例如 Spring_example。这是项目的名称,也是最终生成的 JAR 文件的名称。

  • JDK:选择项目使用的 JDK 版本,例如 23 Oracle OpenJDK 23.0.2。这是项目编译和运行时使用的 Java 开发工具包版本。

  • Java 版本:选择项目使用的 Java 版本,例如 17。这是项目编译时使用的 Java 语言版本。

  • 打包:选择项目的打包方式,例如 Jar。JAR(Java Archive)是一种打包 Java 类文件和相关资源文件的压缩包格式。选择 JAR 可以让您生成一个可执行的 JAR 文件,方便部署和运行。

4. 选择依赖项

  • 选择所需的 Spring Boot 依赖项,例如 Spring Web。Spring Web 是构建 Web 应用程序的基础,它提供了构建 RESTful 应用所需的各种组件,如 Spring MVC 和 Spring WebFlux。选择 Spring Web 可以让您快速开始构建 Web 服务。

5. 生成项目

  • 点击 “创建” 按钮,IntelliJ IDEA 将自动下载并导入项目。

 6. 生成项目

 以下是您创建的 Spring 项目目录结构,以及各个文件或文件夹的实际作用:

四、实现增删改查操作

在项目目录src\main\java\com\example\spring_example中新建文件夹Controller用于放置Java代码。

在Controller文件夹下新建Java类 ,在弹出的窗口中输入类名 例如:“ExampleController” 。

接下来就可以在这里进行代码编写了。

1.示例代码

  • @GetMapping("/hello"):响应 HTTP GET 请求,返回存储的数据。


    @GetMapping("/hello")
    public String hello() {
        // 检查nameAges是否为空,若为空则初始化一个空的HashMap实例
        if (nameAges == null){
            nameAges = new HashMap<>();
        }

        // 返回字符串形式的问候语,并附带当前存储的所有姓名与年龄信息
        return "hello world: " + nameAges.toString();
    }
  • @PostMapping("/hello"):响应 HTTP POST 请求,添加新的数据。

 @PostMapping("/hello")
    public String helloPost(String name, int age) {
        // 将传入的姓名和年龄添加到map中
        nameAges.put(name, age);
        // 返回成功添加的消息
        return "add name " + name + ", age= " + age;
    }
  • @PutMapping("/hello"):响应 HTTP PUT 请求,更新已存在的数据。

 @PutMapping("/hello")
    public String helloPut(String name, int age) {
        // 更新已存在的姓名对应的年龄值
        nameAges.replace(name, age);
        // 返回更新成功的消息
        return "update name " + name + ", age= " + age;
    }
  • @DeleteMapping("/hello/{name}"):响应 HTTP DELETE 请求,根据名称删除数据。

@DeleteMapping("/hello/{name}")
    public String helloDelete(@PathVariable String name) {
        // 从map中移除指定姓名的条目
        nameAges.remove(name);
        // 返回删除成功的消息
        return "delete name " + name;
    }

2.完整示例代码

// 声明包名,表示该类属于哪个包
package com.example.spring_example.Controller;

// 导入所需的Spring框架注解和Java标准库中的HashMap类
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;

// 使用@RestController注解标记这是一个控制器类,
// 它会自动将返回值序列化为JSON并直接写入HTTP响应体中
@RestController
public class ExampleController {

    // 处理GET请求的方法,映射路径是"/hello"
    @GetMapping("/hello")
    public String hello() {
        // 检查nameAges是否为空,若为空则初始化一个空的HashMap实例
        if (nameAges == null){
            nameAges = new HashMap<>();
        }

        // 返回字符串形式的问候语,并附带当前存储的所有姓名与年龄信息
        return "hello world: " + nameAges.toString();
    }

    // 静态变量nameAges用于保存姓名到年龄的映射关系
    private static HashMap<String, Integer> nameAges = new HashMap<>();

    // 处理POST请求的方法,映射路径也是"/hello"
    @PostMapping("/hello")
    public String helloPost(String name, int age) {
        // 将传入的姓名和年龄添加到map中
        nameAges.put(name, age);
        // 返回成功添加的消息
        return "add name " + name + ", age= " + age;
    }

    // 处理PUT请求的方法,同样映射到"/hello"路径
    @PutMapping("/hello")
    public String helloPut(String name, int age) {
        // 更新已存在的姓名对应的年龄值
        nameAges.replace(name, age);
        // 返回更新成功的消息
        return "update name " + name + ", age= " + age;
    }

    // 处理DELETE请求的方法,映射路径包含动态部分"{name}"
    @DeleteMapping("/hello/{name}")
    public String helloDelete(@PathVariable String name) {
        // 从map中移除指定姓名的条目
        nameAges.remove(name);
        // 返回删除成功的消息
        return "delete name " + name;
    }
}

五、使用 Postman 测试

因为我们目前的代码编写属于后端程序,没有对应的前端来进行交互,所以我们可以选择通过Postom来进行前端测试。

在开发 Web 服务时,测试是确保应用质量和功能完整性的重要环节。Postman 是一个流行的 API 开发和测试工具,它提供了一个用户友好的界面和强大的功能来测试 RESTful API。

本文使用了于Postoman相似的测试工具Apifox,具体使用教程详情:

https://blog.csdn.net/m0_74907886/article/details/149811716

      

  1. 配置接口,获取所有数据

    • 请求类型:GET

    • URL:http://localhost:8080/hello

    • 预期结果:返回所有存储的数据。

  2. 添加数据

    • 请求类型:POST

    • URL:http://localhost:8080/hello

    • 请求参数:

      • name: John Doe

      • age: 30

    • 预期结果:返回添加的数据信息。

  3. 更新数据

    • 请求类型:PUT

    • URL:http://localhost:8080/hello

    • 请求参数:

      • name: John Doe

      • age: 31

    • 预期结果:返回更新后的数据信息。

  4. 删除数据

    • 请求类型:DELETE

    • URL:http://localhost:8080/hello/John%20Doe

    • 预期结果:返回删除的数据信息。

六、总结

通过本文的介绍,您已经学会了如何在 Spring 中通过简单的示例代码实现增删改查操作。这些基本操作是学习 Spring 框架的起点,帮助您理解 Spring 的核心概念和功能。希望本文能帮助您快速入门 Spring 开发。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐