前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用 Spring Boot 和 MySQL 创建 Todo List API?

如何使用 Spring Boot 和 MySQL 创建 Todo List API?

作者头像
用户1418987
发布2023-10-26 14:03:46
3000
发布2023-10-26 14:03:46
举报
文章被收录于专栏:coder

如何使用 Spring Boot 和 MySQL 创建 Todo List API?

Spring Boot构建在spring之上,包含了spring的所有特性。如今,它正成为开发人员的最爱,因为它的快速生产就绪环境使开发人员能够直接专注于逻辑,而不是费力地进行配置和设置。Spring Boot 是一个基于微服务的框架,在其中创建一个可用于生产的应用程序只需很少的时间。在本文中,我们将使用 Spring Boot 和 MySQL创建一个简单的待办事项列表应用程序。

先决条件:

  • 具有Java 基本知识。
  • 有关 Spring Boot 的基础知识。
  • 有关使用 SpringBoot 创建 REST API 的基础知识。

要在 Spring Boot 中创建应用程序,请确保您已清除前面列出的所有概念。

分步程序

项目依赖:

代码语言:javascript
复制
Project: Maven
Language: Java
Spring Boot: 3.0.0
Packaging: JAR
Java: 8 
Dependencies: Spring Web, Spring Data JPA, MySQL Driver

第 1 步:

首先进入spring初始化程序并使用下面给出的以下数据创建一个新项目:

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_java
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_java

现在单击“生成” ,将下载一个.zip文件,这将是我们的启动项目。

第 2 步:

现在提取给定的文件夹,然后在您首选的 IDE 中打开该项目,这里我将使用 IntelliJ Idea Community 版本,要打开此入门项目,只需单击“打开”,然后从文件中选择提取的文件夹。

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_02
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_02

单击“确定”后,您将看到如下所示的屏幕。

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_java_03
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_java_03

注意:如果出现问题,您可以右键单击 pom.xml > maven > 重新加载项目,之后将进行一些处理,然后您就可以开始了。

第 3 步:

现在在以下文件夹中创建 4 个包 -> src > main > java > com.example.demo现在右键单击此文件夹 > 新建 > 包 > 命名 > 按 Enter 键

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_04
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_04

创建包

软件包如下:

  1. 控制器
  2. 服务
  3. 存储库
  4. 楷模

创建上面列出的包后,文件树将如下所示。

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_05
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_05

创建包后的文件树

第 4 步:

新建一个名为todolist的数据库,打开MySQL Command Line Client,然后执行命令 

代码语言:javascript
复制
创建数据库待办事项列表;
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_06
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_06

MySQL 命令行客户端

创建该数据库后,我们将在将来使用它。

第 5 步:

现在我们将配置application.properties文件并添加以下信息,以便与数据库建立连接,在我们的例子中为MySQL,将用户名替换为您的 MySQL 的用户名(默认:root)并您帐户的密码应写入spring.datasource.password字段

如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_07
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_07

application.properties 文件

如果您想复制给定的属性,请使用以下属性:

代码语言:javascript
复制
# This is the property to specify the database and the driver here todolist is database name and mysql is driver
spring.datasource.url=jdbc:mysql://localhost:3306/todolist

# These properties specify the data used for authentication and authorization for the database
spring.datasource.username= {use Your username here}
spring.datasource.password= {use Your password here}

# This property is used to specify how we'll handle data ex:- update -> update the remaining data,
# ex: create-drop -> everytime create new tables and delete on termination of the program
spring.jpa.hibernate.ddl-auto=update

# Driver Class for MySQL
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# This is used to show sql whenever any query is executed by hibernate
spring.jpa.show-sql: true

第 6 步:

现在我们已经设置了所有内容,我们将创建一个模型,它将帮助我们在数据库中创建一个表。我们将在models包中创建一个类,并将该类命名为Task.java,其中将包含以下数据

代码语言:javascript
复制
package com.example.demo.models; 

import jakarta.persistence.*; 

@Entity
public class Task { 
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	// this is the primary key which will be auto generated 
	private Long id; 
	private String task; 
	private boolean completed; 

	public Task(String task, boolean completed) { 
		this.task = task; 
		this.completed = completed; 
	} 
	public Long getId() { 
		return id; 
	} 
	public void setId(Long id) { 
		this.id = id; 
	} 
	public String getTask() { 
		return task; 
	} 
	public void setTask(String task) { 
		this.task = task; 
	} 
	public boolean isCompleted() { 
		return completed; 
	} 
	public void setCompleted(boolean completed) { 
		this.completed = completed; 
	} 
} 

第 7 步:

现在我们将在包存储库中创建一个名为TaskRepository的接口,它将扩展接口 JPARepository<Task, Long>,这里 Task 是我们的模型,Long 是我们在 Task.java 中声明的主要 id 的数据类型文件

代码语言:javascript
复制
package com.example.demo.repositories; 

import com.example.demo.models.Task; 
import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.stereotype.Repository; 

import java.util.List; 

@Repository
public interface TaskRepository extends JpaRepository<Task, Long> { 
	public Task findByTask(String task); 
	public List<Task> findByCompletedTrue(); 
	public List<Task> findByCompletedFalse(); 
	public List<Task> findAll(); 
	public Task getById(Long id); 
} 

第 8 步:

现在我们已经创建了存储库和模型,我们将创建服务类,并在该类中实现所有业务逻辑,因此在服务包中创建一个新类TaskService。

代码语言:javascript
复制
package com.example.demo.services; 

import com.example.demo.models.Task; 
import com.example.demo.repositories.TaskRepository; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 

import java.util.List; 

@Service
public class TaskService { 
	@Autowired
	private TaskRepository taskRepository; 
	
	public Task createNewTask(Task task) { 
		return taskRepository.save(task); 
	} 
	
	public List<Task> getAllTask() { 
		return taskRepository.findAll(); 
	} 
	
	public Task findTaskById(Long id) { 
		return taskRepository.getById(id); 
	} 
	
	public List<Task> findAllCompletedTask() { 
		return taskRepository.findByCompletedTrue(); 
	} 
	
	public List<Task> findAllInCompleteTask() { 
		return taskRepository.findByCompletedFalse(); 
	} 
	
	public void deleteTask(Task task) { 
		taskRepository.delete(task); 
	} 
	
	public Task updateTask(Task task) { 
		return taskRepository.save(task); 
	} 
} 

第 9 步:

现在,在最后一步,我们将创建控制器来指定端点,然后执行任务,这里我们已经执行了所有 CRUD 应用程序,现在我们将对其进行测试。

代码语言:javascript
复制
package com.example.demo.controllers; 

import com.example.demo.models.Task; 
import com.example.demo.services.TaskService; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.http.ResponseEntity; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.*; 

import java.util.List; 

@Controller
@RequestMapping("/api/v1/tasks") 
public class TaskController { 

	@Autowired
	private TaskService taskService; 
	@GetMapping("/") 
	public ResponseEntity<List<Task>> getAllTasks() { 
		return ResponseEntity.ok(taskService.getAllTask()); 
	} 
	@GetMapping("/completed") 
	public ResponseEntity<List<Task>> getAllCompletedTasks() { 
		return ResponseEntity.ok(taskService.findAllCompletedTask()); 
	} 
	@GetMapping("/incomplete") 
	public ResponseEntity<List<Task>> getAllIncompleteTasks() { 
		return ResponseEntity.ok(taskService.findAllInCompleteTask()); 
	} 
	@PostMapping("/") 
	public ResponseEntity<Task> createTask(@RequestBody Task task) { 
		return ResponseEntity.ok(taskService.createNewTask(task)); 
	} 
	@PutMapping("/{id}") 
	public ResponseEntity<Task> updateTask(@PathVariable Long id, @RequestBody Task task) { 
		task.setId(id); 
		return ResponseEntity.ok(taskService.updateTask(task)); 
	} 
	@DeleteMapping("/{id}") 
	public ResponseEntity<Boolean> getAllTasks(@PathVariable Long id) { 
		taskService.deleteTask(id); 
		return ResponseEntity.ok(true); 
	} 
}

第10步:

现在通过打开ToDoListApplication.java并单击运行按钮来启动给定程序,这里我们有以下端点来执行以下任务,我们还将使用Postman向我们的服务器发出请求:

返回所有任务
代码语言:javascript
复制
GET /api/v1/tasks -> 返回所有任务
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_08
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_08
将新任务保存到数据库
代码语言:javascript
复制
POST /api/v1/tasks -> 将新任务保存到数据库
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_09
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_09
返回所有已完成任务的列表
代码语言:javascript
复制
GET /api/v1/tasks/completed -> 返回所有已完成任务的列表
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_10
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_spring_10
返回所有未完成任务的列表
代码语言:javascript
复制
GET /api/v1/tasks/incomplete -> 返回所有未完成任务的列表
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_11
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_11
使用给定的 id 和详细信息更新任务
代码语言:javascript
复制
PUT /api/v1/tasks/id -> 使用给定的 id 和详细信息更新任务
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_12
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_MySQL_12
从数据库中删除给定 id 的任务
代码语言:javascript
复制
DELETE /api/v1/tasks/id -> 从数据库中删除给定 id 的任务
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_13
如何使用 Spring Boot 和 MySQL 创建 Todo List API?_List_13

最后我们创建了待办事项列表应用程序。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用 Spring Boot 和 MySQL 创建 Todo List API?
    • 分步程序
      • 项目依赖:
        • 第 1 步:
          • 第 2 步:
            • 第 3 步:
              • 第 4 步:
                • 第 5 步:
                  • 第 6 步:
                    • 第 7 步:
                      • 第 8 步:
                        • 第 9 步:
                          • 第10步:
                            • 返回所有任务
                            • 将新任务保存到数据库
                            • 返回所有已完成任务的列表
                            • 返回所有未完成任务的列表
                            • 使用给定的 id 和详细信息更新任务
                            • 从数据库中删除给定 id 的任务
                        相关产品与服务
                        云数据库 MySQL
                        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档