Maison >base de données >tutoriel mysql >Comment appeler une procédure stockée MySQL en Java

Comment appeler une procédure stockée MySQL en Java

PHPz
PHPzoriginal
2023-04-19 14:12:231939parcourir

Java est un langage de programmation orienté objet et l'interaction avec les bases de données est une opération très courante, tandis que Mysql est l'une des bases de données relationnelles les plus utilisées dans l'industrie. Dans MySQL, une procédure stockée est une unité de programme puissante qui exécute plusieurs instructions SQL et renvoie des résultats. L'appel de la procédure stockée de Mysql en Java est également une opération très courante. Apprenons ensuite comment implémenter ce processus.

1. Création d'une procédure stockée Mysql

Dans Mysql, vous pouvez créer une procédure stockée via la commande suivante :

CREATE PROCEDURE procedure_name [parameters]
BEGIN
   DECLARE local_variables;
   SQL_statements;
END;

Parmi eux, nom_procédure est le nom de la procédure stockée et les paramètres sont les paramètres d'entrée de la procédure stockée. , qui peut être un ou plusieurs , séparés par des virgules. local_variables sont les variables locales utilisées dans la procédure stockée et SQL_statements sont toutes les instructions SQL à exécuter par la procédure stockée. Pour plus de détails, vous pouvez consulter la documentation officielle de Mysql.

2. Étapes pour appeler la procédure stockée Mysql en Java

1. Préparer la connexion à la base de données

Pour appeler la procédure stockée Mysql en Java, vous devez d'abord préparer la connexion à la base de données. Vous pouvez utiliser JDBC pour obtenir l'objet de connexion Mysql, comme indiqué ci-dessous :

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");

Il convient de noter ici que "com.mysql.jdbc.Driver" est le nom de classe du pilote Mysql. Vous devez vous assurer que le pilote correspondant possède. été importé dans le package jar du projet.

2. Appel de procédures stockées

Pour appeler une procédure stockée en Java, vous devez utiliser CallableStatement, qui représente l'objet d'instruction qui appelle la procédure stockée. La syntaxe spécifique est la suivante :

CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?, ...)}");

Parmi eux, nom_procédure est le nom de la procédure stockée à appeler, et entre parenthèses se trouve la liste des paramètres de la procédure stockée. Il peut y avoir un ou plusieurs points d'interrogation, séparés par des virgules. . En supposant que la procédure stockée a deux paramètres, l'instruction ci-dessus doit être modifiée comme suit :

CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?)}");

3. Définir les paramètres

Pour définir la valeur du paramètre de la procédure stockée, vous pouvez utiliser la méthode setXX(), où XX représente les données taper. Par exemple :

cstmt.setInt(1, 123);
cstmt.setString(2, "hello");

Parmi eux, le premier paramètre indique la position du paramètre, à partir de 1 ; le deuxième paramètre est la valeur du paramètre.

4. Exécutez la procédure stockée

Après avoir défini les paramètres, vous pouvez exécuter la procédure stockée via la méthode exécuter() :

cstmt.execute();

La méthode exécuter() renverra une valeur de type booléen, indiquant si la procédure stockée est exécutée. avec succès.

5. Obtenir des résultats

Si la procédure stockée renvoie un résultat, vous pouvez obtenir le jeu de résultats via la méthode getResultSet() :

ResultSet rs = cstmt.getResultSet();
while (rs.next()) {
   // 处理结果集
}

Si la procédure stockée ne renvoie pas de résultat, mais a des paramètres de sortie, vous pouvez utiliser la méthode getXX() Récupère la valeur du paramètre de sortie :

int result = cstmt.getInt(1);

Parmi eux, le premier paramètre indique toujours la position du paramètre.

6. Fermez la connexion

Enfin, n'oubliez pas de fermer la connexion à la base de données :

if (con != null) {
   con.close();
}

Trois Exemple de code

Ce qui suit est un exemple de code complet qui montre comment appeler la procédure stockée de Mysql en Java :

import java.sql.*;

public class Main {
   public static void main(String[] args) {
      try {
         // 准备连接
         Class.forName("com.mysql.jdbc.Driver");
         Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");

         // 调用存储过程
         CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?)}");

         // 设置参数
         cstmt.setInt(1, 123);
         cstmt.setString(2, "hello");

         // 执行存储过程
         boolean success = cstmt.execute();
         if (success) {
            // 处理结果集
            ResultSet rs = cstmt.getResultSet();
            while (rs.next()) {
               // 处理结果集
               int id = rs.getInt("id");
               String name = rs.getString("name");
            }
         } else {
            // 处理输出参数
            int result = cstmt.getInt(1);
         }

         // 关闭连接
         if (con != null) {
            con.close();
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}
.

Quatre, Notes

  1. Assurez-vous que le pilote Mysql a été chargé et est disponible dans le projet
  2. Les paramètres de la procédure stockée peuvent être des paramètres d'entrée de type in, des paramètres de sortie de type out ou une entrée de les paramètres de sortie du type inout ;
  3. Si la procédure stockée a des paramètres de sortie, le type de paramètre doit être défini avant d'appeler la méthode execute() ; s'il n'y a pas de paramètres de sortie, il n'est pas nécessaire de définir cet élément
  4. Après l'exécution ; la procédure stockée, le CallableStatement doit être fermé et connecté.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn