Hướng dẫn build example restful api using spring boot mysql - xây dựng ví dụ khôi phục lại api bằng cách sử dụng khởi động mùa xuân mysql

Andrea Perera

Ngày 8 tháng 9 năm 2020

5 phút đọc

Giới thiệu

Bài viết này sẽ xem xét cách tạo API RESTful bằng các phương thức HTTP cho các hoạt động CRUD [Tạo, truy xuất, cập nhật và xóa] trong Spring Boot cùng với cơ sở dữ liệu MySQL. Spring Boot là một khung dựa trên Java nguồn mở để xây dựng các ứng dụng mùa xuân doanh nghiệp.Create, Retrieve, Update and Delete] operations in Spring Boot along with the MYSQL database. Spring Boot is an open-source Java-based framework to build enterprise spring applications.

Yêu cầu

Chi tiết của & NBSP; Cập nhật lần cuối vào ngày 06 tháng 9 năm 2022 & NBSP; | & nbsp; & nbsp; in & nbsp; E-mail Last Updated on 06 September 2022   |   Print  Email

Trong hướng dẫn khởi động mùa xuân này, bạn sẽ tìm hiểu cách phát triển API Dịch vụ web Restful cho các hoạt động CRUD trên cơ sở dữ liệu MySQL. Các hoạt động CRUD bao gồm tạo, truy xuất, cập nhật và xóa.

Bằng cách hoàn thành hướng dẫn này, bạn sẽ có thể xây dựng một ứng dụng Web dựa trên khởi động Spring để hiển thị API CRUD RESTful cho khách hàng. Các công nghệ sau đây sẽ được sử dụng:

  • Spring Boot: Đơn giản rất nhiều về ứng dụng Java Enterprise và phát triển API RESTful bằng cách cung cấp cấu hình mặc định và thực tiễn tốt nhất.
  • Dữ liệu mùa xuân JPA: Đơn giản hóa việc lập trình cho lớp truy cập dữ liệu bằng cách thực hiện hầu hết các hoạt động tồn tại phổ biến sau các thực tiễn tốt nhất.
  • Hibernate: là khung ánh xạ đối tượng/quan hệ mặc định được tích hợp với JPA dữ liệu lò xo.

Để làm theo hướng dẫn này, bạn phải cài đặt các chương trình phần mềm sau trên máy tính của bạn:

  • Bộ phát triển Java [JDK 1.8 hoặc mới hơn]
  • Máy chủ cơ sở dữ liệu MySQL [bao gồm MySQL Workbench và MySQL Line Line Client để quản lý cơ sở dữ liệu]
  • Một IDE Java [Eclipse IDE, Netbeans hoặc IntelliJ IDEA]
  • Curl [để kiểm tra API RESTful]

Nếu bạn đã hoàn thành hướng dẫn này, bạn sẽ làm theo điều này nhanh hơn. Tuy nhiên, hướng dẫn này cũng dễ dàng cho người mới bắt đầu.

 

1. Tạo cơ sở dữ liệu MySQL

Chúng tôi sẽ phát triển các API RESTful cho phép khách hàng thực hiện các hoạt động CRUD về các sản phẩm, vì vậy hãy tạo bảng sau trong Máy chủ MySQL:

CREATE TABLE `product` [
  `id` int[11] NOT NULL AUTO_INCREMENT,
  `name` varchar[45] NOT NULL,
  `price` float NOT NULL,
  PRIMARY KEY [`id`]
];

Đây là một bảng đơn giản chỉ chứa 3 cột: ID, tên và giá cả.

 

2. Cấu hình phụ thuộc Maven

Chỉ định cấu hình sau trong tệp POM.XML dự án của bạn:pom.xml file:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

Bạn thấy đấy, chúng tôi sử dụng Spring Boot phiên bản 2.2.2.

Cổ vật khởi động boot-boot-web là dành cho MVC Web Spring, dịch vụ web RESTful và máy chủ Tomcat nhúng.spring-boot-starter-web is for Spring Web MVC, RESTful webservices and embedded Tomcat server.

Các tác phẩm khởi hành boot-boot-jpa của Spring-boot là dành cho Dữ liệu Spring JPA và Hibernate.spring-boot-starter-data-jpa is for Spring Data JPA and Hibernate.

Cổ vật MySQL-Connector-Java là dành cho trình điều khiển JDBC cho MySQL.mysql-connector-java is for JDBC driver for MySQL.

Chúng tôi không cần chỉ định các phiên bản của các phụ thuộc này vì Spring Boot sử dụng các phiên bản tốt nhất và tương thích nhất [cảm ơn!].

Mẹo: & nbsp; Sử dụng & nbsp; Spring Boot DevTools để tự động khởi động lại & nbsp; vì vậy bạn không phải khởi động lại ứng dụng theo cách thủ công trong quá trình phát triển. Use Spring Boot DevTools for automatic restart so you don't have to manually restart the application during development.

 

3. Định cấu hình thuộc tính nguồn dữ liệu

Tiếp theo, chúng ta cần chỉ định thông tin kết nối cơ sở dữ liệu. Vì vậy, hãy tạo tệp application.application.properties file under src/main/resources directory with the following content:

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password

Hãy nhớ cập nhật URL, tên người dùng và mật khẩu theo máy chủ cơ sở dữ liệu MySQL của bạn.

 

4. Lớp mô hình miền mã

Tiếp theo, hãy tạo Lớp sản phẩm & NBSP; để ánh xạ với bảng sản phẩm trong cơ sở dữ liệu như sau:Product class to map with the product table in the database as follows:

package net.codejava;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Product {
	private Integer id;
	private String name;
	private float price;

	public Product[] {
	}

	public Product[Integer id, String name, float price] {
		this.id = id;
		this.name = name;
		this.price = price;
	}

	@Id
	@GeneratedValue[strategy = GenerationType.IDENTITY]
	public Integer getId[] {
		return id;
	}

	// other getters and setters...
}

Đây là một lớp mô hình miền đơn giản, với tên lớp và tên trường giống hệt với tên bảng và tên cột trong cơ sở dữ liệu - vì vậy chúng tôi có thể sử dụng số lượng chú thích JPA tối thiểu.

 

5. Giao diện kho lưu trữ mã

Để có lợi thế của Dữ liệu Spring JPA, hãy tạo giao diện ProductStrepository như dưới đây:ProductRepository interface as below:

package net.codejava;

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository {

}

Sau đó, Spring Data JPA sẽ tạo mã triển khai cho các hoạt động CRUD phổ biến nhất - chúng tôi không phải viết một truy vấn duy nhất.

 

6. Lớp dịch vụ mã

Tiếp theo, mã một lớp hoạt động như một lớp giữa giữa lớp tồn tại [kho lưu trữ] và lớp bộ điều khiển. Tạo lớp sản phẩm dịch vụ với mã sau:ProductService class with the following code:

package net.codejava;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Transactional
public class ProductService {

	@Autowired
	private ProductRepository repo;
	
	public List listAll[] {
		return repo.findAll[];
	}
	
	public void save[Product product] {
		repo.save[product];
	}
	
	public Product get[Integer id] {
		return repo.findById[id].get[];
	}
	
	public void delete[Integer id] {
		repo.deleteById[id];
	}
}

Như bạn có thể thấy, lớp kinh doanh/dịch vụ này chỉ cần chuyển tiếp các cuộc gọi đến việc triển khai giao diện ProductStrepository & NBSP; Ngoài ra, tất cả các phương thức được thực hiện trong các giao dịch vì lớp này được đánh dấu bằng chú thích @Transactional.ProductRepository interface. In addition, all the methods are executed in transactions because this class is marked with the @Transactional annotation.

 

7. Mã ứng dụng khởi động lò xo

Để chạy ứng dụng khởi động mùa xuân của chúng tôi, chúng tôi cần tạo lớp chính như hình dưới đây:

package net.codejava;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

	public static void main[String[] args] {
		SpringApplication.run[Application.class, args];
	}

}

Lớp này sẽ bắt đầu nhúng máy chủ Tomcat lưu trữ ứng dụng web khởi động mùa xuân của chúng tôi.

 

8. Lớp Bộ điều khiển REST mã

Ở đây, chúng tôi đến một phần thực sự phơi bày các API RESTful cho các hoạt động CRUD - một bộ điều khiển mùa xuân theo phong cách nghỉ ngơi. Tạo lớp ProductControll với một số mã ban đầu như dưới đây:ProductController class with some initial code as below:

package net.codejava;

import java.util.*;

import org.springframework.beans.factory.annotation.*;
import org.springframework.http.*;

import org.springframework.web.bind.annotation.*;

@RestController
public class ProductController {

	@Autowired
	private ProductService service;
	
	// RESTful API methods for Retrieval operations	
	
	// RESTful API method for Create operation
	
	// RESTful API method for Update operation
	
	// RESTful API method for Delete operation
}

Chú thích @RestControll cho phép các phương thức xử lý trong bộ điều khiển này được hiển thị dưới dạng API RESTful, ví dụ: Đọc dữ liệu JSON từ yêu cầu và bao gồm dữ liệu JSON đến phản hồi. Và bộ điều khiển REST này vẫn có lợi thế của việc tiêm phụ thuộc Spring [một ví dụ về dịch vụ sản phẩm được tự động].@RestController annotation enables the handler methods in this controller to be exposed as RESTful APIs, e.g. reading JSON data from the request and including JSON data to the response. And this REST controller still takes advantages of Spring’s dependency injection [an instance of ProductService is autowired].

Hãy cùng xem cách thực hiện API Restful cho mỗi thao tác CRUD trong các phần tiếp theo.

 

9. Thực hiện API RESTful để hoạt động truy xuất

API RESTful đầu tiên là một phương pháp trả về danh sách sản phẩm [một loại hoạt động truy xuất]:

@GetMapping["/products"]
public List list[] {
	return service.listAll[];
}

Bây giờ chúng tôi có thể chạy ứng dụng & nbsp; lớp và kiểm tra. Với Eclipse, bạn có thể thấy logo khởi động Spring xuất hiện trong chế độ xem bảng điều khiển như trong ảnh chụp màn hình sau:Application class and test. With Eclipse, you can see the Spring Boot logo appears in the Console view as shown in the following screenshot:

Từ thông tin ghi nhật ký, bạn có thể thấy Tomcat, Spring Data JPA và Hibernate được bắt đầu. Và máy chủ lắng nghe trên cổng 8080 theo mặc định.

Sử dụng MySQL Workbench để chèn hàng đầu tiên vào bảng sản phẩm [Tên: iPhone X, Giá: 999,98]. Và nhập lệnh Curl sau:

curl //localhost:8080/products

Sau đó, bạn có thể thấy phản hồi của máy chủ như thế này:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
0

Đây là đại diện JSON của một danh sách các đối tượng sản phẩm. Spring sử dụng thư viện Jackson JSON để tuần tự hóa các đối tượng Java cho JSON và ngược lại, tự động.

Tiếp theo, hãy để Lừa thực hiện phương thức thứ hai cho API RESTful cho phép khách hàng có được thông tin về một sản phẩm cụ thể dựa trên ID, như thế này:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
1

Trong phương thức này, nếu một sản phẩm được tìm thấy cho ID đã cho, máy chủ sẽ gửi phản hồi bao gồm biểu diễn JSON của đối tượng sản phẩm với trạng thái HTTP OK [200]. Khác nếu không tìm thấy sản phẩm nào, nó không tìm thấy trạng thái HTTP [404].

Nhập lệnh Curl sau để kiểm tra:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
2

Phản hồi từ máy chủ:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
0

Cố gắng kiểm tra với ID không tồn tại:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
4

Bạn sẽ thấy trạng thái HTTP 404 trong đầu ra dài dòng.

Lưu ý: Trong trường hợp không có mục nào trong danh sách [danh sách trả về trống], API sẽ trả về trạng thái HTTP 204 không có nội dung. Để biết chi tiết, hãy kiểm tra bài viết này: & NBSP; API khởi động khởi động mùa xuân với hướng dẫn Hateoas In case of no items in the list [the returned list is empty] the API should return HTTP status 204 No Content. For details, check this article: Spring Boot REST API CRUD with HATEOAS Tutorial

 

10. Thực hiện API RESTful để tạo hoạt động

Phương pháp sau đây sẽ hiển thị API RESTful cho phép khách hàng tạo ra một sản phẩm:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
5

Sử dụng @postmapping & nbsp; chú thích, phương pháp này chỉ xử lý yêu cầu bài HTTP. Và nhập lệnh sau để kiểm tra:@PostMapping annotation, this method handles only HTTP POST request. And type the following command to test:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
6

Kiểm tra cơ sở dữ liệu trong MySQL Workbench và bạn sẽ thấy hàng thứ hai được chèn.

Để xác thực dữ liệu trong phần thân của yêu cầu, hãy tham khảo bài viết này: & NBSP; Spring Boot Boot Rest API Ví dụ xác thực

Lưu ý: Nếu hoạt động sáng tạo thành công, API sẽ trả về trạng thái HTTP 201 được tạo. if the creation operation is successful, the API should return HTTP status 201 Created. For details, check this article: Spring Boot REST API CRUD with HATEOAS Tutorial


11. Triển khai API RESTful cho hoạt động cập nhật

Viết mã cho phương thức hiển thị API RESTful cho hoạt động cập nhật như sau:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
7

Chú thích @putmapping chỉ định rằng phương thức này chỉ chấp nhận yêu cầu đặt HTTP. Nếu một sản phẩm được tìm thấy với ID đã cho, nó sẽ được cập nhật và máy chủ trả về trạng thái HTTP OK. Nếu không tìm thấy sản phẩm, trạng thái HTTP không tìm thấy [404] được trả về.@PutMapping annotation specifies that this method accepts only HTTP PUT request. If a product found with the given ID, it is updated and the server returns HTTP status OK. If no product found, the HTTP status Not Found [404] is returned.

Sử dụng Curl, nhập lệnh sau để kiểm tra cập nhật sản phẩm với ID 1:

    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE



    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        mysql
        mysql-connector-java
        runtime
            



    1.8




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
8

Nhập lệnh này để kiểm tra bản cập nhật:

curl //localhost:8080/products
  

12. Thực hiện API RESTful để xóa hoạt động

Cuối cùng, chúng tôi thực hiện phương thức phơi bày API RESTful cho thao tác xóa đơn giản như sau:

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
0

Và nhập lệnh sau để kiểm tra xóa sản phẩm bằng ID 1:

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
1

Bạn sẽ thấy ID hàng 1 bị xóa khỏi cơ sở dữ liệu.

Lưu ý: Nếu hoạt động xóa thành công, API sẽ trả về mã trạng thái HTTP 204 Không có nội dung. if the delete operation is successful, the API should return HTTP status code 204 No Content. For details, check this article: Spring Boot REST API CRUD with HATEOAS Tutorial

Xin chúc mừng, bạn đã hoàn thành hướng dẫn khởi động mùa xuân về API RESTful cho các hoạt động CRUD với cơ sở dữ liệu MySQL. Để bạn tham khảo, bạn có thể tải xuống dự án mẫu được đính kèm bên dưới.

Bạn cũng có thể xem phiên bản video của hướng dẫn này dưới đây:

 

Cái gì tiếp theo? Tôi khuyên bạn nên theo dõi cái tiếp theo: & nbsp; api boot boot rest crud với hướng dẫn

 

Hướng dẫn dịch vụ web liên quan:

  • Mùa xuân khởi động xin chào hướng dẫn dịch vụ web yên tĩnh thế giới
  • REST API Thực tiễn tốt nhất: Cách sử dụng các phương thức và mã trạng thái HTTP phù hợp
  • API REST BOOT REST CRUD với hướng dẫn
  • Tải xuống tệp khởi động mùa xuân và tải lên các ví dụ API REST
  • Hướng dẫn dịch vụ web của Java Restful cho người mới bắt đầu với Jersey và Tomcat
  • Java Crud Restful Services ví dụ với Jersey và Tomcat & NBSP;
  • Mùa xuân khởi động api yêu cầu API ví dụ xác thực
 

Hướng dẫn khởi động mùa xuân khác:

  • Mùa xuân khởi động xin chào thế giới ví dụ
  • Khởi động tự động khởi động Spring bằng cách sử dụng Spring Boot DevTools
  • Hướng dẫn xử lý biểu mẫu khởi động mùa xuân với các thẻ mẫu lò xo và JSP
  • Cách tạo ứng dụng web khởi động Spring [MVC Spring với JSP/Thymeleaf]
  • Mùa xuân khởi động - Dữ liệu mùa xuân JPA - Ví dụ MySQL
  • Ví dụ về khởi động mùa xuân với MVC Spring - Dữ liệu mùa xuân JPA - Thymeleaf - Hibernate - MySQL
  • Cách sử dụng JDBC với khởi động lò xo
  • Ứng dụng web khởi động mùa xuân với JDBC - Thymeleaf - Oracle
  • Cách đóng gói ứng dụng khởi động mùa xuân cho Jar và War


Thông tin về các Tác giả:

Nam Ha Minh được lập trình viên Java được chứng nhận [SCJP và SCWCD]. Anh bắt đầu lập trình với Java vào thời Java 1.4 và đã yêu Java kể từ đó. Kết bạn với anh ấy trên Facebook và xem video Java của anh ấy là YouTube.

Thêm bình luận

Làm cách nào để tạo API REST bằng Spring Boot Maven và MySQL?

Overview..
Tạo dự án khởi động mùa xuân từ Spring Initicizr ..
Tạo cơ sở dữ liệu MySQL và xác định cấu hình cơ sở dữ liệu ..
Tạo lớp mô hình thực thể ..
Tạo kho lưu trữ dữ liệu JPA ..
Tạo lớp dịch vụ ..
Tạo lớp Bộ điều khiển REST ..
Xây dựng và điều hành dự án ..
Thử nghiệm bằng Postman ..

Làm cách nào để tạo API REST bằng cách sử dụng Spring Boot?

Xây dựng API REST BOOT mùa xuân trong Java..
Bước 1: Khởi tạo một dự án khởi động mùa xuân ..
Bước 2: Kết nối khởi động lò xo với cơ sở dữ liệu ..
Bước 3: Tạo mô hình người dùng ..
Bước 4: Tạo các lớp Kho lưu trữ ..
Bước 5: Tạo bộ điều khiển ..
Bước 6: Biên dịch, xây dựng và chạy ..
Bước 7: Kiểm tra API REST khởi động Spring ..

Làm cách nào để truy cập cơ sở dữ liệu MySQL với ứng dụng REST dữ liệu Spring?

Các bước để tích hợp MySQL với Spring Boot..
Bước 1: Tạo cơ sở dữ liệu MySQL ..
Bước 2: Nối phụ thuộc MySQL ..
Bước 3: Đặt cấu hình kết nối MYSQL khởi động lò xo ..
Bước 4: Xây dựng lớp kho lưu trữ cho Spring Boot ..
Bước 5: Chuyển đổi lớp blog thành thực thể ..
Bước 6: Thêm bộ điều khiển vào Spring Boot MYSQL tích hợp ..

MySQL có hỗ trợ API REST không?

MySQL đã là tiêu chuẩn cho việc này trong nhiều thập kỷ.Một nhược điểm là cơ sở dữ liệu chỉ lưu trữ dữ liệu.Nếu bạn muốn làm điều gì đó với dữ liệu đó, API REST MySQL sẽ giúp nó có thể.Đây là những gì bạn cần biết để sử dụng API REST MySQL trong các dự án của bạn.a MySQL REST API makes it possible. Here is what you need to know to use MySQL REST APIs in your projects.

Bài Viết Liên Quan

Chủ Đề