Maison >base de données >tutoriel mysql >Comment appeler une procédure stockée MySQL en Java
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
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!