Computer >> Máy Tính >  >> Lập trình >> MySQL

Những lợi thế của các thủ tục được lưu trữ là gì?

Sau đây là những ưu điểm của các thủ tục được lưu trữ:

  • Vì các thủ tục được lưu trữ được biên dịch và lưu trữ, nên bất cứ khi nào bạn gọi một thủ tục, phản hồi sẽ nhanh chóng.

  • bạn có thể nhóm tất cả các câu lệnh SQL bắt buộc trong một thủ tục và thực thi chúng cùng một lúc.

  • Vì các thủ tục được lưu trữ trên máy chủ cơ sở dữ liệu nhanh hơn máy khách. Bạn có thể thực hiện tất cả các câu lệnh phức tạp bằng cách sử dụng nó, điều này sẽ nhanh hơn.

  • Sử dụng các thủ tục, bạn có thể tránh lặp lại mã hơn nữa với những thủ tục này, bạn có thể sử dụng các chức năng SQL bổ sung như gọi các hàm được lưu trữ.

  • Sau khi biên dịch một thủ tục được lưu trữ, bạn có thể sử dụng nó trong bất kỳ số lượng ứng dụng nào. Nếu cần bất kỳ thay đổi nào, bạn có thể chỉ cần thay đổi quy trình mà không cần chạm vào mã ứng dụng.

  • Bạn có thể gọi các thủ tục được lưu trữ PL / SQL từ Java và các thủ tục được lưu trữ trên Java từ PL / SQL.

Ví dụ

Giả sử chúng ta đã tạo một bảng có tên Nhân viên với mô tả sau:

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name     | varchar(255) | YES  |     | NULL    |       |
| Salary   | int(11)      | NO   |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+

Giả sử chúng ta có một thủ tục có tên là myProcedure sẽ chèn dữ liệu vào bảng Nhân viên dưới dạng:

Create procedure myProcedure (IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45))
   -> BEGIN
   -> INSERT INTO Employees(Name, Salary, Location) VALUES (name, sal, loc);
   -> END //

Chương trình JDBC sau gọi thủ tục lưu trữ Java được đề cập ở trên.

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Example {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/testdb";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Preparing a CallableStatement
      CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");
      cstmt.setString(1, "Amit");
      cstmt.setInt(2, 3000);
      cstmt.setString(3, "Hyderabad");
      cstmt.execute();
      cstmt.setString(1, "Kalyan");
      cstmt.setInt(2, 4000);
      cstmt.setString(3, "Vishakhapatnam");
      cstmt.execute();
   }
}

Đầu ra

Connection established......

Nếu bạn xác minh nội dung của bảng Nhân viên, bạn có thể tìm thấy các hàng mới được thêm vào như hình dưới đây:

+-----------+--------+----------------+
| Name      | Salary | Location       |
+-----------+--------+----------------+
| Amit      | 3000   | Hyderabad      |
| Kalyan    | 4000   | Vishakhapatnam |
+-----------+--------+----------------+