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

Beispiel eines JDBC CallableStatement-Objekts

Das folgende Beispiel verwendet CallableStatement und den folgenden MySQL-Speicherprozess getEmpName ()-

Stelle sicher, dass dieser Speicherprozess in der Datenbank EMP erstellt wurde. Du kannst dies mit dem MySQL-Query-Browser erledigen.

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 ;

Dieser Beispielcode wurde basierend auf den Umgebungs- und Datenbankeinstellungen der letzten Kapitel geschrieben.

Kopiere und füge den folgenden Beispielcode in JDBCExample.java ein und kompiliere und führe ihn aus:

//Schritt1.Importiere die erforderlichen Softwarepakete
import java.sql.*;
public class JDBCExample {
   // Name des JDBC-Treibers und der Datenbank-URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   //  Datenbankanmeldeinformationen
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   CallableStatement stmt = null;
   try{
      //Schritt2: Registrieren Sie den JDBC-Treiber
      Class.forName("com.mysql.jdbc.Driver");
      //Schritt3: Verbindung herstellen
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      //Schritt4: Ausführen der Abfrage
      System.out.println("Creating statement...");
      String sql = "{call getEmpName (?, ?)}";
      stmt = conn.prepareCall(sql);
      
      //Zuerst binden Sie die IN-Parameter, dann die OUT-Parameter
      int empID = 102;
      stmt.setInt(1, empID); // Das wird die ID auf102
      // Da der zweite Parameter OUT ist, wird er registriert
      stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
      
      //Verwenden Sie die Methode execute, um den gespeicherten Prozess auszuführen.
      System.out.println("Executing stored procedure...");
      stmt.execute();
      //Verwenden Sie die Methode getXXX, um den Mitarbeiternamen abzurufen
      String empName = stmt.getString(2;
      System.out.println("Empätzname mit ID:") + 
               empID + " ist " + Fehlerbehandlung für JDBC-Fehler
      catch(SQLException se
      conn.close();
   }catch(SQLException se){
      //}catch(Exception e){
      se.printStackTrace();
   Fehlerbehandlung für Class.forName
      //e.printStackTrace();
      }finally{
   Verwendung zum Schließen von Ressourcen
      //if(stmt!=null)
      try{
         stmt.close();
            catch(SQLException se
      }2{
      
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
   System.out.println("Auf Wiedersehen!");
}//main beenden
}//JDBCExample beenden

Lassen Sie uns den obigen Beispielcode kompilieren, wie folgt:

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

LaufzeitJDBCExamplees wird folgende Ergebnisse erzeugen-

C:\>java JDBCExample
Datenbank verbinden...
Anweisung erstellen...
Speicherverfahren ausführen...
Emp Name mit ID:102 ist Zaid
Auf Wiedersehen!
C:\>