Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Base de Datos / Store Procedure: Result Set

Store Procedure: Result Set

Por jc mouse domingo, mayo 19, 2019

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.

MariaDB

Por ejemplo si partimos de la siguiente tabla «empleado»

empleados

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:

create procedure

Y para ejecutar el SQL, presionamos el botón [Continuar]

Realizamos una prueba con el parámetro de entrada «codigo» = «CMO» y obtenemos:

Elena Nito

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:

Result Set

enjoy!!!

Tags

Artículos similares

Crea formulario de login estilo Agents of Shield Marvel

En esta oportunidad aprovechando el interés que tienen ahora los superheroes de Marvel, crearemos un formulario de logue[...]

Sistema de gestión de stock – El Controlador (Parte 5)

Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O El controlador[...]

Map3d: Convierte cualquier ciudad del mundo en un modelo 3D en segundos

Map3d es un recurso online que permite transformar datos cartográficos planos de OpenStreetMap en estructuras volumétric[...]

Pruebas funcionales con AssertJ Swing

AssertJ Swing es una biblioteca para Java que proporciona una interfaz fluida para la realización automatizada de prueba[...]

Chusakeri: Software Educativo para realizar sumas mentales

Las matemáticas son fundamentales para la vida y aparte de las actividades clásicas de enseñanza desarrolladas en el aul[...]

Hola Mundo con Slim Framework

Slim es un micro framework para PHP que nos ayuda a escribir rápidamente aplicaciones Web y APIs sencillas pero poderosa[...]