English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El siguiente ejemplo utiliza CallableStatement y el procedimiento almacenado MySQL getEmpName ()-
Asegúrate de que ya se haya creado este procedimiento almacenado en la base de datos EMP. Puedes hacerlo usando el navegador de consultas 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 ;
Este código de ejemplo se escribió basado en los ajustes de entorno y base de datos de los capítulos anteriores.
Copiar y pegar el siguiente ejemplo en JDBCExample.java y compilarlo y ejecutarlo como se muestra a continuación:
//paso1.Importar los paquetes necesarios import java.sql.*; public class JDBCExample { // nombre del driver JDBC y la URL de la base de datos static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // credenciales de la base de datos static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; CallableStatement stmt = null; try{ //paso2: registrar el driver JDBC Class.forName("com.mysql.jdbc.Driver"); //paso3: establecer conexión System.out.println("Conectando a la base de datos..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); //paso4: ejecutar la consulta System.out.println("Creando statement..."); String sql = "{call getEmpName (?, ?)}"; stmt = conn.prepareCall(sql); //primero enlazar los parámetros IN, luego los parámetros OUT int empID = 102; stmt.setInt(1, empID); // esto establecerá el ID a102 // debido a que el segundo parámetro es OUT, se debe registrar stmt.registerOutParameter(2, java.sql.Types.VARCHAR); //usar el método execute para ejecutar el procedimiento almacenado. System.out.println("Ejecutando procedimiento almacenado..."); stmt.execute(); //usar el método getXXX para obtener el nombre del empleado String empName = stmt.getString(2; System.out.println("Nombre del empleado con ID:") + empID + "es" + empName); catch(SQLException se conn.close(); catch(SQLException se){ //Manejo de errores JDBC se.printStackTrace(); catch(Exception e){ //Manejo de errores de Class.forName } Para cerrar recursos //if(stmt!=null) try{ stmt.close(); catch(SQLException se }2{ } try{ if(conn!=null) conn.close(); catch(SQLException se){ se.printStackTrace(); } } System.out.println("¡Adiós!"); }//Finalizar main }//Finalizar JDBCExample
Ahora, compilamos el ejemplo anterior como se muestra a continuación:
C:\>javac JDBCExample.java C:\>
en tiempo de ejecuciónJDBCExamplelo que producirá los siguientes resultados-
C:\>java JDBCExample Conectando a la base de datos... Creando sentencia... Ejecutando procedimiento almacenado... Nombre del empleado con ID:102 es Zaid ¡Adiós! C:\>