Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los Result Set o Conjunto de Resultados que no son otra cosa que las filas obtenidas por una consulta SQL.
Por ejemplo si partimos de la siguiente tabla «empleado»
Podemos definir un procedimiento para que dado el parámetro de entrada «código de cargo» nos retorne una tabla con los datos de los empleados que cumplen dicho requisito.
El asistente gráfico de phpMyAdmin nos permite crear procedimientos almacenados muy fácilmente, sin embargo también podemos crearlos directamente desde SQL, por ejemplo:
Y para ejecutar el SQL, presionamos el botón [Continuar]
Realizamos una prueba con el parámetro de entrada «codigo» = «CMO» y obtenemos:
Result Set en Java
Ahora para obtener el Result Set desde código java, realizamos lo siguiente:
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { Connection connection = conectar("jdbc:mariadb://localhost:3306/TutorialJava", "root", ""); if (connection != null) { try { System.out.println("> Se prepara llamada a procedimiento almacenado"); CallableStatement stmt = connection.prepareCall("{call empleadosPorCargo(?)}"); //ingresando parametro INOUT de tipo VARCHAR stmt.registerOutParameter(1, Types.VARCHAR); stmt.setString(1, "CMO"); System.out.println("> Ejecutando procedimiento"); stmt.execute(); System.out.println("> Ejecucion terminada"); // Obtiene el Result Set ResultSet resultSet = stmt.getResultSet(); //Imprime en pantalla el resultado System.out.printf("%-4s | %-30s | %-30s |\n", "ID", "NOMBRE", "CARGO"); while (resultSet.next()) { int id = resultSet.getInt("id"); String nombre = resultSet.getString("nombre"); String cargo = resultSet.getString("cargo"); System.out.printf("%-4s | %-30s | %-30s |\n", id, nombre, cargo); } } catch (SQLException ex) { System.err.println(ex.getMessage()); } } } public static Connection conectar(String url, String user, String pass) { try { Connection connection = DriverManager.getConnection(url, user, pass); System.out.println("> Conectado a la base de datos"); return connection; } catch (SQLException ex) { System.err.println(ex.getMessage()); } return null; } }
Y como resultado obtenemos:
enjoy!!!
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est[...]
Xdebug es una extensión para PHP que nos ayuda con la depuración y el desarrollo de aplicaciones. Contiene un depurador[...]
Para conectar Visual Basic .NET con una base de datos de MS Access se utiliza la libreria «System.Data.OleDb» en el sigu[...]
¿Qué es Maven? Maven es una herramienta de software para la gestión y construcción de proyectos Java. Provee un conjunto[...]
Como dice un viejo dicho, «La practica hace al maestro» y en el mundo de la programación no es diferente, por eso siempr[...]
El JTable de Java es un gran componente para mostrar datos en una tabla de una forma rápida y sencilla, sin embargo en v[...]