Mysql> gọi thủ tục lưu sẵn

Thủ tục được lưu trữ là một khái niệm khá phổ biến trong MySQL và các hệ thống cơ sở dữ liệu khác. Nó giúp giảm thời gian giao tiếp giữa các ứng dụng với MySQL. Do đó làm thế nào để chúng ta có thể gọi là nó trong Spring Boot. Cùng tham khảo bài viết này nhé

Cài đặt thư viện

Mọi người tạo ứng dụng Spring Boot trong IntelIJ hoặc trên https. //bắt đầu. mùa xuân. io/

implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'mysql:mysql-connector-java' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'

Code language: JavaScript (javascript)

Cấu hình file ứng dụng. tính chất

Chúng ta truy cập vào ứng dụng tập tin. properties and Configure path to the database and Configure Hibernate as after

server.port=${port:8080} #Database spring.datasource.url=jdbc:mysql://localhost:3306/demo-stored-procedure spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #Hibernate spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.properties.hibernate.id.new_generator_mappings = true spring.jpa.properties.hibernate.show.sql = true spring.jpa.properties.hibernate.format_sql = true spring.jpa.generate-ddl=true spring.jpa.properties.hibernate.hb2dll.auto = update logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

Code language: PHP (php)

Chuẩn bị

Kiểu mẫu

Create model Employee with các thuộc tính như sau

package com.example.demo.model; import lombok.Data; import javax.persistence.*; @Entity @Table(name = "employees") @Data public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String firstName; private String lastName; private String address; }

Code language: CSS (css)

Tạo thủ tục lưu trữ

Chúng ta sẽ cùng tạo thủ tục get_all_employees đơn giản như sau

DELIMITER $$ CREATE PROCEDURE get_all_employee() BEGIN SELECT * FROM employees; end

Kho

Create interface EmployeeRepository as after

package com.example.demo.repository; import com.example.demo.model.Employee; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface EmployeeRepository extends JpaRepository { @Query(value = "CALL `demo-stored-procedure`.get_all_employee();", nativeQuery = true) List getAllEmployees(); }

Code language: CSS (css)

Ở đây chúng ta sử dụng @Query with nativeQuery bằng true để gọi câu lệnh Call Procedure của MySQL

Dịch vụ

Chúng ta có một giao diện GeneralService chứa các phương thức CRUD để sử dụng chung

Dịch vụ chung. java

package com.example.demo.service; import java.util.Optional; public interface IGeneralService<T> { Iterable<T> findAll(); Optional<T> findById(Long id); T save(T t); void remove(Long id); }

Code language: HTML, XML (xml)

IEmployeeDịch vụ

package com.example.demo.service; import com.example.demo.model.Employee; import java.util.List; public interface IEmployeeService extends IGeneralService<Employee> { List getAllEmployees(); }

Code language: PHP (php)

Nhân viênDịch vụ. java

package com.example.demo.service; import com.example.demo.model.Employee; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; @Service public class EmployeeService implements IEmployeeService { @Autowired private IEmployeeService employeeService; @Override public List getAllEmployees() { return employeeService.getAllEmployees(); } @Override public Iterable findAll() { return employeeService.findAll(); } @Override public Optional findById(Long id) { return employeeService.findById(id); } @Override public Employee save(Employee employee) { return employeeService.save(employee); } @Override public void remove(Long id) { employeeService.remove(id); } }

Code language: CSS (css)

Cài đặt Controller để sử dụng Stored Procedure

Chúng ta sẽ tạo một lớp EmployeeController để kiểm tra phương thức vừa tạo ở trên

nhân viênđiều khiển. java

________số 8

Kiểm tra thủ tục lưu trữ bằng Postman

Các bạn vào postman và truy cập đường dẫn sau để kiểm tra kết quả. http. //máy chủ cục bộ. 8080/nhân viên

Mysql> gọi thủ tục lưu sẵn

Kết luận

Ở bài viết này mình đã hướng dẫn mọi người cách gọi thủ tục lưu sẵn của MySQL trong Spring Boot. Mọi người có thể thử và làm thêm vài thủ tục khác để hiểu rõ hơn nhé ^^