English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il seguente esempio utilizza CallableStatement e la procedura di archiviazione MySQL getEmpName () di seguito:
Assicurati di aver creato questo procedura di archiviazione nell'archivio EMP. Puoi farlo utilizzando il browser di query 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 ;
Questo esempio di codice è stato scritto in base alle configurazioni dell'ambiente e del database dei capitoli precedenti.
Copia e incolla l'esempio seguente in JDBCExample.java e compila e esegui come segue:
// Passaggio 1. Importare i pacchetti necessari import java.sql.*; public class JDBCExample { // Nome del driver JDBC e URL del database static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Credenziali del database static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; CallableStatement stmt = null; try{ // Passo 2: Registrare il driver JDBC Class.forName("com.mysql.jdbc.Driver"); // Passo 3: Creare la connessione System.out.println("Connettendo al database... "); conn = DriverManager.getConnection(DB_URL, USER, PASS); // Passo 4: Eseguire la query System.out.println("Creando statement... "); String sql = "{call getEmpName (?, ?)}"; stmt = conn.prepareCall(sql); // Prima di tutto vincolare i parametri IN, quindi i parametri OUT int empID = 102; stmt.setInt(1, empID); // Questo imposterà l'ID su 102 // Poiché il secondo parametro è OUT, registrarlo stmt.registerOutParameter(2, java.sql.Types.VARCHAR); // Utilizzare il metodo execute per eseguire la procedura memorizzata. System.out.println("Eseguendo procedura memorizzata... "); stmt.execute(); // Utilizzare il metodo getXXX per recuperare il nome del dipendente String empName = stmt.getString(2); System.out.println("Nome del dipendente con ID: " +) empID + " is " + empName) stmt.close(); conn.close(); }catch(SQLException se){ //Gestisce l'errore JDBC se.printStackTrace(); } //Gestisce l'errore Class.forName e.printStackTrace(); } //Usato per chiudere le risorse try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Arrivederci!"); //Fine main //Fine JDBCExample
Ora compiliamo l'esempio sopra, come segue:
C:\>javac JDBCExample.java C:\>
EsecuzioneJDBCExample,产生活如下结果-
C:\>java JDBCExample Connettendo al database... Creando statement... Eseguendo procedura memorizzata... Emp Name with ID:102 is Zaid Arrivederci! C:\>