问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

通过RESTful接口实现对数据库进行基本的读写操作

创作时间:
作者:
@小白创作中心

通过RESTful接口实现对数据库进行基本的读写操作

引用
CSDN
1.
https://blog.csdn.net/ComboHu/article/details/139355378

本文将详细介绍如何使用Spring Boot框架通过RESTful接口实现对MySQL数据库的基本读写操作。通过本文,你将学习到从项目创建、数据库配置、实体类定义、仓库接口、服务类到控制器类的完整开发流程,并通过Postman工具演示数据的写入和读取操作。

一、创建Spring Boot项目

这里使用的Spring Boot项目与我们上次使用的一样,所以创建方法跟下文一致即可。

二、配置数据库连接

2.1 创建数据库

首先我们需要创建一个数据库,应用于本次项目。

打开MySQL,输入密码登录。(MySQL安装方法上文也有)

然后输入

CREATE DATABASE mydatabase2;

这里是mydatabase2,因为上一次已经创建了mydatabase1。

2.2 配置项目

首先打开我们在第一步中创建好的Spring Boot项目,然后打开properties文件。

然后在文件中输入

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase2
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

上述代码中的password处,替换为你的MySQL实际密码。

三、编写业务程序

3.1 创建实体类Book

在这一部分,我们以图书的存取为例编写一个业务程序。

首先在com.example.demo包下创建一个Java类,名为Book

然后在Book.java中输入如下代码

package com.example.demo;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private String author;
    // Getters and setters
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}

3.2 创建仓库接口BookRepository

在com.example.demo包下创建一个Java接口类,名为BookRepository。

然后在BookRepository文件中,输入如下代码

package com.example.demo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface BookRepository extends JpaRepository<Book, Long> {
}

3.3 创建服务类BookService

在com.example.demo包下创建一个Java类,名为BookService。

在BookService类中输入如下代码

package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
    @Autowired
    private BookRepository bookRepository;
![](https://wy-static.wenxiaobai.com/chat-rag-image/127863501881077877)
    public List<Book> getAllBooks() {
        return bookRepository.findAll();
    }
    public Book getBookById(Long id) {
        return bookRepository.findById(id).orElse(null);
    }
    public Book addBook(Book book) {
        return bookRepository.save(book);
    }
    public Book updateBook(Long id, Book book) {
        if (bookRepository.existsById(id)) {
            book.setId(id);
            return bookRepository.save(book);
        }
        return null;
    }
    public void deleteBook(Long id) {
        bookRepository.deleteById(id);
    }
}

3.4 创建控制器类BookController

在com.example.demo包下创建一个Java类,名为BookController。

在BookController中,输入如下代码

package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/books")
public class BookController {
    @Autowired
    private BookService bookService;
    @GetMapping
    public List<Book> getAllBooks() {
        return bookService.getAllBooks();
    }
    @GetMapping("/{id}")
    public Book getBookById(@PathVariable Long id) {
        return bookService.getBookById(id);
    }
    @PostMapping
    public Book addBook(@RequestBody Book book) {
        return bookService.addBook(book);
    }
    @PutMapping("/{id}")
    public Book updateBook(@PathVariable Long id, @RequestBody Book book) {
        return bookService.updateBook(id, book);
    }
    @DeleteMapping("/{id}")
    public void deleteBook(@PathVariable Long id) {
        bookService.deleteBook(id);
    }
}

四、程序运行

4.1 构建程序

按照如下步骤操作,进行maven构建。

首先clean,按照下图顺序先选中clean,再点击绿色三角(构建)

然后package。

4.2 运行程序

右键DemoApplication,然后点击运行。

五、测试程序

5.1 写入

首先打开postman,创建一个新的请求

方法选择POST,url输入为:http://localhost:8080/api/books

然后选择Body-raw,输入如下

{
    "title":"bookname",
    "author":"me"
}

这里的title就是Book类中的title,author就是Book类中的author,那么我这里设置的为bookname和me,实际上设为什么都可以,根据你的需求来。

都填好之后,类似下图

点击Send,出现如下反馈即为成功写入

{
    "id": 1,
    "title": "bookname",
    "author": "me"
}

也即下图红色部分。

5.2 读取

将方法改为GET,点击Send,会返回当前数据库中已有的数据。

返回结果如下

[
    {
        "id": 1,
        "title": "bookname",
        "author": "me"
    }
]

这张图中只有一个book实例,也就是我在上一步中写入的例子。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号