Maison  >  Article  >  base de données  >  Quels sont les avantages des procédures stockées ?

Quels sont les avantages des procédures stockées ?

WBOY
WBOYavant
2023-09-12 19:41:021746parcourir

Quels sont les avantages des procédures stockées ?

Voici les avantages des procédures stockées :

  • Étant donné que les procédures stockées sont compilées et stockées, chaque fois que la procédure est appelée, la réponse est rapide.

  • Vous pouvez regrouper toutes les instructions SQL requises dans une seule procédure et les exécuter immédiatement.

  • Étant donné que le processus est stocké sur le serveur de base de données, cela est plus rapide que le client. Vous pourrez effectuer toutes les requêtes complexes en l'utilisant, ce qui sera plus rapide.

  • En utilisant des procédures, vous évitez la duplication de code et avec celles-ci, vous pouvez utiliser des fonctionnalités SQL supplémentaires telles que l'appel de fonctions stockées.

  • Après avoir compilé une procédure stockée, vous pouvez l'utiliser dans un certain nombre d'applications. Si des modifications sont nécessaires, vous pouvez simplement modifier le processus sans toucher au code de l'application.

  • Vous pouvez appeler des procédures stockées PL/SQL depuis Java, et vous pouvez appeler des procédures stockées Java depuis PL/SQL.

Exemple

Supposons que nous créions une table appelée « Employés » avec la description suivante :

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

Supposons que nous ayons une procédure appelée myProcedure qui insère des données dans la table Employees comme indiqué ci-dessous :

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 //

Le programme JDBC suivant appelle la procédure stockée Java ci-dessus.

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();
   }
}

Résultat

Connection established......

Si vous vérifiez le contenu de la table Employés, vous pouvez trouver les lignes nouvellement ajoutées comme indiqué ci-dessous :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer