English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exemple d'objet CallableStatement JDBC

L'exemple suivant utilise CallableStatement et la procédure stockée getEmpName () MySQL-

Assurez-vous que cette procédure stockée a été créée dans la base de données EMP. Vous pouvez le faire avec un navigateur de requêtes MySQL.

DELIMITER $$
DROP PROCEDURE IF EXISTS `EMP`.`getEmpName` $$
CREATE PROCEDURE `EMP`.`getEmpName` 
   (IN EMP_ID INT, OUT EMP_FIRST VARCHAR(255))
BEGIN
   SELECT first INTO EMP_FIRST
   FROM Employees
   WHERE ID = EMP_ID;
END $$
DELIMITER ;

L'exemple de code suivant est écrit en fonction des paramètres de l'environnement et de la base de données des quelques chapitres précédents.

Copiez et collez l'exemple suivant dans le fichier JDBCExample.java, puis compilez et exécutez comme suit :

//étape1.Importer les bibliothèques nécessaires
import java.sql.*;
public class JDBCExample {
   // nom du pilote JDBC et URL de la base de données
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   //  credentials de base de données
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   CallableStatement stmt = null;
   try{
      //étape2: enregistrer le pilote JDBC
      Class.forName("com.mysql.jdbc.Driver");
      //étape3: établir la connexion
      System.out.println("Connexion à la base de données...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      //étape4: exécuter la requête
      System.out.println("Création de l'étatment...");
      String sql = "{call getEmpName (?, ?)}";
      stmt = conn.prepareCall(sql);
      
      //d'abord liez les paramètres IN, puis liez les paramètres OUT
      int empID = 102;
      stmt.setInt(1, empID); // cela fixera l'ID à102
      // puisque le second paramètre est OUT, le registre
      stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
      
      //Exécutez la procédure stockée en utilisant la méthode execute.
      System.out.println("Exécutant la procédure stockée... ");
      stmt.execute();
      //recherchez le nom de l'employé en utilisant la méthode getXXX
      String empName = stmt.getString(2;
      System.out.println("Nom d'employé avec l'ID : ") + 
               empID + " is " + empName);
      catch(SQLException se
      conn.close();
   }catch(SQLException se){
      //Handle JDBC error
      se.printStackTrace();
   }catch(Exception e){
      //e.printStackTrace();
      }finally{
   Used to close resources
      //if(stmt!=null)
      try{
         stmt.close();
            catch(SQLException se
      }2{
      
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
   System.out.println("Goodbye!");
}//End main
}//End JDBCExample

Now let's compile the above example as follows:

C:\>javac JDBCExample.java
C:\>

RuntimeJDBCExample,it will produce the following results-

C:\>java JDBCExample
Connecting to database...
Creating statement...
Executing stored procedure...
Emp Name with ID:102 is Zaid
Goodbye!
C:\>